:root{font-family:"Segoe UI","Microsoft JhengHei",sans-serif;color:#243747;background:#f3f6f8;font-size:16px;--ink:#102e40;--teal:#008b79;--border:#dde5eb;--muted:#718392;--red:#c84648}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.5;cursor:wait}button,a,input,select,textarea{outline-offset:3px}button{border:1px solid var(--border);background:white;border-radius:7px;padding:9px 14px;color:inherit}button:hover{background:#edf5f4}button.primary{background:var(--teal);border-color:var(--teal);color:#fff}button.primary:hover{background:#007567}button.danger{color:var(--red)}button.small{padding:5px 10px;font-size:.875rem}.hidden{display:none!important}.shell{display:grid;grid-template-columns:228px minmax(0,1fr);min-height:100vh}aside{position:sticky;top:0;height:100vh;background:var(--ink);color:#c1d3dc;padding:32px 18px;display:flex;flex-direction:column}.brand{color:#fff;font-size:1.85rem;text-decoration:none;font-weight:800;letter-spacing:1px;padding:0 15px}.brand span{color:#37d5bc}.brand small{display:block;font-size:.875rem;letter-spacing:2px;font-weight:400;margin-top:7px;color:#aec1cb}.workspace{font-size:.75rem;margin:38px 15px 13px;color:#7897a8;letter-spacing:1px}nav{display:grid;gap:7px}nav button{display:flex;align-items:center;gap:12px;color:#b6cbd6;background:transparent;border:0;text-align:left;padding:13px 15px}nav button:hover{background:#1c4154}nav button.active{background:#1d514f;color:#79ead5;border-left:3px solid #37d5bc;padding-left:12px}nav b{margin-left:auto;font-size:.75rem;background:#d59643;color:#132f40;padding:1px 6px;border-radius:4px}.nav-label{color:#7897a8;font-size:.75rem;padding:25px 15px 5px}.aside-bottom{margin-top:auto;padding:24px 14px 0;font-size:.875rem}.aside-bottom small{display:block;color:#7897a8;margin:10px 0 18px}.aside-bottom button{background:transparent;color:#b6cbd6;border-color:#345064}.secure{color:#8accbc}main{min-width:0}header{height:80px;background:#fff;border-bottom:1px solid var(--border);padding:0 36px;display:flex;justify-content:space-between;align-items:center;font-size:.875rem}.crumb span{color:#a6b4be;padding:0 14px}.header-right{display:flex;gap:12px;align-items:center;color:#647786}.avatar{border-radius:50%;background:#e0eeeb;color:var(--teal);padding:7px 10px;font-weight:700}#content{padding:32px 36px 50px;max-width:1800px;margin:auto}.heading{display:flex;gap:18px;align-items:center;justify-content:space-between;margin-bottom:26px}.eyebrow{font-size:.75rem;letter-spacing:2px;color:var(--teal);font-weight:700;margin-bottom:9px}h1{font-size:1.8rem;margin:0 0 9px;font-weight:700;letter-spacing:.5px}h2{font-size:1.12rem;margin:0}h3{font-size:1rem}.sub{font-size:.875rem;line-height:1.7;color:var(--muted);margin:0}.actions{display:flex;gap:9px;flex-wrap:wrap}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-bottom:24px}.stat{background:#fff;border:1px solid var(--border);border-radius:10px;padding:22px 24px;position:relative}.stat .label{font-size:.875rem;color:#647887}.stat strong{display:block;font-size:2.15rem;line-height:1.4;margin:10px 0 2px;font-weight:600}.stat small{color:#7d8d98;font-size:.75rem}.stat.red strong{color:var(--red)}.stat.teal strong{color:var(--teal)}.stat .stripe{position:absolute;right:24px;top:25px;width:28px;height:4px;border-radius:2px;background:#9eb3c0}.stat.red .stripe{background:#df8886}.stat.teal .stripe{background:#37bda6}.grid{display:grid;grid-template-columns:minmax(0,1.75fr) minmax(280px,1fr);gap:22px}.card{background:white;border:1px solid var(--border);border-radius:10px;overflow:hidden;margin-bottom:24px}.card-head{display:flex;justify-content:space-between;align-items:center;padding:21px 23px;border-bottom:1px solid #edf1f4;gap:10px}.card-body{padding:22px 24px}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;font-size:.875rem;white-space:nowrap}th{font-weight:500;color:#728492;background:#f8fafb;font-size:.8125rem;text-align:left;padding:13px 18px;border-bottom:1px solid var(--border)}td{padding:17px 18px;border-bottom:1px solid #edf1f4;vertical-align:middle}tbody tr:last-child td{border-bottom:0}tbody tr.clickable:hover{background:#f4faf8;cursor:pointer}td .sub{font-size:.75rem}td strong{font-size:.875rem;font-weight:600}.badge{display:inline-block;padding:4px 9px;border-radius:5px;background:#edf1f4;color:#647888;font-size:.75rem}.badge.已完成,.badge.正常{background:#e6f4ef;color:#087b62}.badge.逾期,.badge.衝突{background:#fceced;color:#bf4548}.badge.進行中,.badge.即將到期{background:#fff4dc;color:#98701b}.badge.待排程{background:#eaf0f9;color:#617aa2}.progress{display:flex;align-items:center;gap:10px;font-size:.75rem;color:#687b8b}.track{height:6px;background:#e9eff1;width:95px;border-radius:4px;overflow:hidden}.track i{height:100%;display:block;background:#19a58c;border-radius:4px}.reminder{padding:18px 23px;border-bottom:1px solid #edf1f4;display:flex;gap:13px;align-items:flex-start;cursor:pointer}.reminder:hover{background:#fafcfc}.reminder .mark{background:#fceced;color:#c25255;width:33px;height:33px;display:grid;place-items:center;border-radius:8px;flex-shrink:0}.reminder .mark.warn{background:#fff5dd;color:#aa852a}.reminder strong{font-size:.875rem;display:block;margin-bottom:5px}.reminder p{font-size:.75rem;color:#718392;margin:5px 0 0;line-height:1.6}.empty{padding:42px 24px;text-align:center;color:#7a8c99;font-size:.875rem;line-height:1.9}.empty strong{display:block;font-size:1rem;color:#415b6b;margin-bottom:6px}.empty button{margin-top:16px}.filterbar{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:0 0 20px}.search{min-width:260px;flex:1;max-width:460px}.filterbar input,.filterbar select{padding:10px 12px;border:1px solid var(--border);border-radius:7px;background:white}.tabs{display:flex;gap:5px;background:#e6edf1;border-radius:7px;padding:4px}.tabs button{border:0;background:transparent;font-size:.875rem;padding:7px 13px}.tabs button.active{background:white;box-shadow:0 1px 4px #16344612}.link{border:0;color:var(--teal);background:transparent;padding:3px;font-size:.875rem}.note{background:#eef6f6;border:1px solid #d9e9e7;padding:15px 18px;border-radius:7px;font-size:.875rem;color:#4f7274;line-height:1.8;margin:18px 0}.note.warn{background:#fff8e9;border-color:#f0e4c6;color:#90712e}.field{display:flex;flex-direction:column;gap:7px;font-size:.875rem;margin-bottom:16px}.field input,.field select,.field textarea{width:100%;padding:10px 12px;border:1px solid #cdd9e0;border-radius:6px;background:#fff;color:#243747}.field textarea{resize:vertical;min-height:80px}.field label{color:#556e7d}.field small{color:#8094a2}.form-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0 18px}.form-grid.two{grid-template-columns:1fr 1fr}.wide{grid-column:1/-1}.form-title{grid-column:1/-1;border-bottom:1px solid var(--border);padding-bottom:12px;margin:13px 0 20px;color:#254454}.modal-head{padding:24px 28px;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;position:sticky;top:0;background:white;z-index:2}.modal-body{padding:22px 28px}.modal-foot{display:flex;justify-content:flex-end;gap:10px;padding:18px 28px;border-top:1px solid var(--border);background:#f8fafb;position:sticky;bottom:0;z-index:2}dialog{padding:0;border:1px solid #d8e2e6;border-radius:12px;width:min(1120px,95vw);max-height:92vh;color:inherit;box-shadow:0 20px 100px #102e4033}dialog::backdrop{background:#102e4077;backdrop-filter:blur(2px)}.close{border:0;font-size:1.4rem;padding:0 6px}.detail-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;padding:20px 24px;background:#f7fafb}.detail-grid label{display:block;color:#7d8f9c;font-size:.75rem;margin-bottom:6px}.detail-grid b{font-size:.875rem;font-weight:500}.task-editor{border:1px solid var(--border);border-radius:8px;margin:18px 0;padding:18px;background:#f7fafb}.task-editor .form-grid{grid-template-columns:repeat(3,1fr)}.selection{background:#eef7f4!important}.error{color:var(--red);font-size:.875rem;line-height:1.7;white-space:pre-wrap}.history-row{padding:22px;border-bottom:1px solid var(--border)}.history-row summary{cursor:pointer;line-height:1.8}.changes{font-size:.875rem;white-space:pre-wrap;overflow-wrap:anywhere;background:#f5f8fa;padding:15px;max-height:250px;overflow:auto}.rule-table input,.rule-table select{padding:7px;max-width:155px;border:1px solid var(--border);border-radius:5px}.rule-table input[type=number]{width:85px}.rule-table td{padding:10px}.rule-table th{padding:12px 10px}#toast{position:fixed;right:30px;bottom:25px;background:#173e49;color:#fff;border-radius:8px;padding:16px 22px;max-width:480px;box-shadow:0 5px 30px #1234;z-index:100;display:none;font-size:.875rem;line-height:1.7}.login{min-height:100vh;display:grid;grid-template-columns:1.1fr 1fr}.login-art{background:#102e40;color:#fff;padding:70px 12%;display:flex;flex-direction:column;justify-content:center}.login-art .brand{padding:0;font-size:2.5rem}.login-art h1{font-size:2.4rem;line-height:1.5;margin-top:50px}.login-art p{line-height:1.9;color:#9db9c8}.login-lines{margin-top:40px;display:grid;gap:18px}.login-lines div{height:9px;background:#235065;border-radius:5px}.login-lines div:nth-child(1){width:90%;background:#21a78f}.login-lines div:nth-child(2){width:64%}.login-lines div:nth-child(3){width:78%}.login-panel{display:flex;align-items:center;justify-content:center;padding:30px}.login-panel form{width:min(360px,100%)}.login-panel h2{font-size:1.6rem;margin-bottom:14px}.login-panel .sub{margin-bottom:30px}.login-panel button{width:100%;margin-top:12px}.schedule-row{display:grid;grid-template-columns:230px 1fr;min-width:850px;border-bottom:1px solid #edf1f4;align-items:center}.schedule-label{padding:13px 18px;font-size:.875rem}.timeline{height:44px;position:relative;background:repeating-linear-gradient(90deg,transparent,transparent calc(100% / 30 - 1px),#edf1f4 calc(100% / 30 - 1px),#edf1f4 calc(100% / 30))}.bar{position:absolute;top:12px;height:21px;border-radius:4px;background:#23a68f;border:0;min-width:6px;padding:0}.bar.late{background:#d87878}.timeline-head{display:flex;justify-content:space-between;font-size:.75rem;color:#718391;padding:16px 0}.nowrap{white-space:nowrap}.muted{color:var(--muted)}@media(max-width:1100px){.shell{grid-template-columns:195px minmax(0,1fr)}#content{padding:25px}.grid{grid-template-columns:1fr}.stats{gap:10px}.stat{padding:18px}header{padding:0 25px}.form-grid{grid-template-columns:1fr 1fr}}@media(max-width:760px){.shell{display:block}aside{height:auto;position:relative;padding:18px}.brand{font-size:1.5rem}.brand small,.workspace,.aside-bottom,.nav-label{display:none}nav{display:flex;overflow:auto;margin-top:18px}nav button{white-space:nowrap;padding:10px;font-size:.875rem}nav button.active{padding-left:10px;border-left:0;border-bottom:2px solid #37d5bc}.header-right #clock{display:none}header{height:60px;padding:0 18px}#content{padding:22px 16px}.stats{grid-template-columns:1fr 1fr}.heading{align-items:flex-start;flex-direction:column}.stat strong{font-size:1.7rem}.form-grid,.form-grid.two,.task-editor .form-grid{grid-template-columns:1fr}.detail-grid{grid-template-columns:1fr 1fr}.login{grid-template-columns:1fr}.login-art{padding:30px}.login-art h1{font-size:1.7rem;margin:25px 0 0}.login-lines{display:none}.modal-body{padding:18px}.search{min-width:180px}.header-right{gap:6px}.crumb{font-size:.75rem}}
:root .permission-grid{display:flex;flex-wrap:wrap;gap:12px 20px;padding:12px;border:1px solid var(--border);border-radius:6px}.permission-grid label{display:flex;align-items:center;gap:8px}.field .permission-grid input{width:18px;height:18px}
:root .demo-banner{background:#fff0cc;color:#72540a;padding:10px 20px;font-size:.875rem;border-bottom:1px solid #e6d59f}@media(min-width:1101px) and (max-width:1450px){.grid{grid-template-columns:1fr}}
.export-progress{position:fixed;right:24px;bottom:24px;z-index:100000;width:min(400px,calc(100vw - 32px));padding:18px;background:#fff;border:1px solid #cbdde3;border-radius:12px;box-shadow:0 8px 32px #16394333;color:#193f50}.export-progress p{margin:10px 0}.export-progress progress{display:block;width:100%;height:14px;accent-color:#008b80}.export-progress small{display:block;margin-top:8px}.export-progress button{margin-top:10px}.export-progress.failed{border-color:#c95151}

.export-progress[popover]{margin:0;inset:auto 24px 24px auto}

.order-origin-heading th{background:#e4f1f3;color:#173f50;text-align:left;font-size:15px;padding:14px 18px;border-top:3px solid #fff;border-bottom:1px solid #cbdde3}.order-origin-heading~.order-origin-heading th{border-top-width:14px}

.section-date-sort{margin-left:12px;font-weight:normal}.order-origin-heading th{white-space:normal}

/* Production-notice revisions: labels accompany color for accessibility. */
.notice-preview{border:1px solid #cad7df;border-radius:8px;padding:16px;margin:0 0 18px}
.notice-diff-wrap{overflow:auto;margin:12px 0}.notice-diff{width:100%;border-collapse:collapse;min-width:570px}
.notice-diff th,.notice-diff td{border:1px solid #cad7df;padding:12px;vertical-align:top;white-space:pre-wrap;overflow-wrap:anywhere;text-align:left}
.notice-diff thead th{background:#173e50;color:white}.notice-diff tbody th{width:24%;font-weight:700}
.notice-diff .notice-before{background:#fff1ef;color:#743c35;width:32%}.notice-diff .notice-after{background:#e6f5ef;color:#09583f;width:32%}
.notice-change-label{display:inline-block;font-size:12px;border:1px solid currentColor;border-radius:4px;padding:2px 6px;margin:0 8px 5px 0;white-space:nowrap}
.notice-revision{margin:12px 0;padding:12px;border:1px solid #cad7df;border-radius:6px}.notice-revision summary{cursor:pointer}

/* Original RD logo: keep the complete artwork and its aspect ratio. */
.brand .brand-logo{display:block;width:140px;max-width:100%;height:auto;background:transparent;border-radius:0;padding:0;object-fit:contain}
aside>.brand{display:block;flex-shrink:0}aside>.brand+.workspace{margin-top:18px}
.login-art .brand-logo{width:190px}.login-art .brand{display:block}
@media(max-width:760px){.brand .brand-logo{width:88px}.login-art .brand-logo{width:140px}}

.login-art h1,.login-art p,.login-art .brand small{overflow-wrap:anywhere}

/* Destructive task action: separated from the ordinary edit form. */
.task-delete-panel{margin-top:24px;border:1px solid #ecc1bc;border-radius:10px;background:#fff7f6;color:#713b36;overflow:hidden}
.task-delete-panel>summary{display:flex;align-items:center;gap:9px;padding:14px 18px;cursor:pointer;font-weight:600;color:#a62b24;list-style:none;background:#fcebe8}
.task-delete-panel>summary::-webkit-details-marker{display:none}
.task-delete-panel>summary::after{content:'展開';margin-left:auto;font-size:12px;font-weight:400}
.task-delete-panel[open]>summary::after{content:'收合'}
.task-delete-icon{display:inline-grid;place-items:center;width:20px;height:20px;border-radius:50%;background:#b73830;color:white;font-size:13px}
.task-delete-tag{font-size:12px;font-weight:400;background:#fff;border:1px solid #edc6bf;border-radius:4px;padding:2px 6px}
.task-delete-body{padding:18px;display:grid;gap:16px}
.task-delete-description{margin:0;line-height:1.8;font-size:13px;color:#784d46;overflow-wrap:anywhere}
.task-delete-description strong{color:#812d27}
.task-delete-reason{display:grid;gap:8px;font-size:14px;font-weight:600;grid-template-columns:auto 1fr;align-items:center}
.task-delete-reason>span{font-size:12px;color:#ad332b;font-weight:400}
.task-delete-panel textarea{grid-column:1/-1;display:block;box-sizing:border-box;width:100%;min-height:88px;padding:10px 12px;border:1px solid #d6b5af;border-radius:6px;background:white;color:#253d48;font:inherit;font-weight:400;resize:vertical;line-height:1.6}
.task-delete-panel textarea:focus{outline:2px solid #c25b50;outline-offset:2px}
.task-delete-actions{display:flex;justify-content:flex-end;gap:10px;border-top:1px solid #efdad5;padding-top:14px}
.task-delete-panel .task-delete-confirm{background:#b6322a;border:1px solid #b6322a;color:#fff;font-weight:600}
.task-delete-panel .task-delete-confirm:hover{background:#972820;border-color:#972820}
.task-delete-panel button:disabled{opacity:.55;cursor:wait}
.task-delete-panel .error{margin:0}.task-delete-panel .error:empty{display:none}
.task-delete-children{padding:12px;background:#fff0d9;border:1px solid #e8c593;border-radius:6px;color:#77511e;font-size:13px}
.task-delete-children p{margin:8px 0}.task-delete-children label{display:flex;align-items:flex-start;gap:8px}
@media(max-width:600px){.task-delete-body{padding:14px}.task-delete-actions{flex-wrap:wrap}.task-delete-actions button{flex:1}.task-delete-panel>summary{padding:12px}}
