:root{font-family:'IBM Plex Sans','Noto Sans TC',system-ui,sans-serif;color:#3c382f;background:#ece7de;line-height:1.5;--green:#6e7a65;--green2:#e2ded0;--line:#ddd6c8;--danger:#8d5449;--warning:#736047}
*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}
.shell{min-height:100vh;display:grid;grid-template-columns:248px 1fr}.sidebar{background:#40453a;color:white;padding:24px 18px;position:sticky;top:0;height:100vh}.brand{font-size:20px;font-weight:750;margin-bottom:28px}.brand small{display:block;font-size:12px;font-weight:500;color:#a6a290;margin-top:3px}.nav-group{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#b3b1a3;margin:22px 10px 6px}.nav button{display:block;width:100%;text-align:left;border:0;background:transparent;color:#d9d6c8;padding:9px 10px;border-radius:6px}.nav button:hover,.nav button.active{background:#555b4b}
.main{padding:28px 34px;min-width:0}.topbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:25px}.topbar h1{margin:0;font-size:25px}.actor{color:#6d685a;font-size:14px}.card{background:white;border:1px solid var(--line);border-radius:9px;padding:20px;margin-bottom:18px;box-shadow:0 1px 2px #3c382f14}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:15px}.metric{font-size:28px;font-weight:730;color:var(--green)}.muted{color:#6d685a}
.toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:16px}.toolbar .grow{flex:1}.btn{border:1px solid var(--green);background:var(--green);color:white;border-radius:6px;padding:8px 13px}.btn.secondary{background:white;color:var(--green)}.btn.danger{background:var(--danger);border-color:var(--danger)}.btn:disabled{opacity:.5;cursor:not-allowed}.actions,.row-actions{display:flex;gap:8px;flex-wrap:wrap}.link{border:0;background:transparent;color:var(--green);padding:0;text-decoration:underline}
table{width:100%;border-collapse:collapse;font-size:14px}
/* CHANGE_CONTROL_POLICY_PAGE_SPEC.md Section 142.1 (Phase Addition 2026-09-06): all desktop Target group tables share one fixed column grid via <colgroup>, so table-layout must be fixed rather than content-based. */
.policy-table{table-layout:fixed}
.policy-table td{word-break:break-word}
th,td{text-align:left;padding:11px 9px;border-bottom:1px solid #e7e1d5;vertical-align:top}th{color:#6d685a;font-weight:650;background:#f6f2ea}.table-scroll{overflow-x:auto}.tag{display:inline-block;padding:3px 8px;border-radius:999px;background:var(--green2);color:var(--green);font-size:12px;font-weight:650;margin:1px}.tag.warning{background:#e9decb;color:var(--warning)}.tag.danger{background:#ecdcd6;color:var(--danger)}
.form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.full,.field.full{grid-column:1/-1}.form h2{margin:4px 0 0}.field{display:flex;flex-direction:column;gap:5px}.field.actions{flex-direction:row;flex-wrap:wrap;align-items:center;gap:8px}.field label{font-size:13px;font-weight:650}.field small{color:#6d685a}.field input,.field select,.field textarea,.toolbar input,.toolbar select{border:1px solid #979388;border-radius:6px;padding:8px 10px;background:white}.field textarea{min-height:80px}.readonly,.notice-inline{border:1px solid var(--line);background:#f6f2ea;border-radius:6px;padding:9px 10px}.field-pair-inputs{display:flex;align-items:center;gap:8px}.field-pair-inputs input{flex:1;min-width:0}.field-pair-inputs span{color:#6d685a}
.error{background:#f0ddd8;border:1px solid #d9b8ae;color:#7a4238;padding:11px;border-radius:6px;margin-bottom:15px}.notice{background:#e6e2d3;border:1px solid #cac4ae;padding:11px;border-radius:6px;margin-bottom:15px}.secret{background:#f2ead2;border:1px solid #cbb583;border-radius:7px;padding:14px;margin-bottom:15px;display:flex;align-items:center;gap:14px;flex-wrap:wrap}.secret code{font-size:16px;background:white;padding:7px 10px}.center-state{min-height:60vh;display:grid;place-items:center;color:#6d685a}.login{max-width:430px;margin:10vh auto}.login h1{margin-bottom:5px}
.detail{display:grid;grid-template-columns:170px 1fr;gap:8px 20px}.detail dt{color:#6d685a}.detail dd{margin:0;word-break:break-word}.code{font-family:ui-monospace,monospace;font-size:12px}.empty{text-align:center;padding:35px;color:#6d685a}.two-column{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.user-hero,.section-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:18px}.user-hero h2,.section-heading h2{margin-top:0}.empty-state{padding:32px;text-align:center;background:#f6f2ea;border:1px dashed #979388;border-radius:8px}.empty-state h3{margin:0 0 5px}.timeline{list-style:none;padding:0;margin:0}.timeline li{display:grid;grid-template-columns:160px 1fr auto;gap:8px;padding:9px 0;border-bottom:1px solid #e7e1d5}.timeline span{color:#6d685a}.danger-zone{border-color:#d9b8ae}.danger-zone h2{color:var(--danger)}
.modal-backdrop{position:fixed;inset:0;background:#2e2a207d;display:grid;place-items:center;padding:20px;z-index:10}.modal{width:min(520px,100%);margin:0}.modal h2{margin-top:0}
.more-menu{position:relative}.more-menu summary{color:var(--green);text-decoration:underline;cursor:pointer}.more-menu>div{position:absolute;right:0;top:100%;z-index:5;min-width:170px;background:white;border:1px solid var(--line);border-radius:6px;box-shadow:0 8px 24px #3c382f26;padding:10px;display:grid;gap:9px}.more-menu button{text-align:left}.danger-link{color:var(--danger)}.pagination{display:flex;justify-content:space-between;align-items:center;gap:12px}
.workspace-hero{display:flex;align-items:flex-start;justify-content:space-between;gap:22px;background:linear-gradient(135deg,#fff,#efeadf)}.workspace-hero h2{margin:3px 0}.eyebrow{color:var(--green);font-size:12px;font-weight:750;letter-spacing:.1em}.hero-status{text-align:right;white-space:nowrap}.metric.small{font-size:21px;margin-top:8px}.metric small{font-size:12px;font-weight:600;color:#6d685a}.result-metrics .card{margin-bottom:18px}.source-actions,.panel-actions{margin-top:18px}.source-links{display:flex;gap:10px;flex-wrap:wrap}.registration-form{margin-top:18px}.trace{max-height:440px;overflow:auto;background:#2b2820;color:#e4ded0;border-radius:7px;padding:14px;font-size:12px;white-space:pre-wrap;word-break:break-word}.card details{border-top:1px solid var(--line);padding:11px 0}.card details summary{cursor:pointer;color:var(--green);font-weight:650}.tall-table{max-height:520px;overflow:auto}.tall-table thead{position:sticky;top:0;z-index:1}
@media(max-width:1000px){.two-column{grid-template-columns:1fr}.user-hero,.section-heading{flex-direction:column}.timeline li{grid-template-columns:1fr}}
@media(max-width:850px){.shell{grid-template-columns:1fr}.sidebar{position:relative;height:auto}.nav{display:flex;flex-wrap:wrap}.nav-group{width:100%}.nav button{width:auto}.main{padding:20px}.form{grid-template-columns:1fr}.workspace-hero{flex-direction:column}.hero-status{text-align:left}}
.project-tabs{display:flex;gap:.45rem;flex-wrap:wrap;margin:1rem 0}.project-tabs button{border:0;border-bottom:2px solid transparent;background:transparent;padding:.65rem .8rem;color:#6d685a;font-weight:650}.project-tabs button.active,.project-tabs button:hover{color:var(--green);border-bottom-color:var(--green)}.repeat-row,.sample-row,.tree-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) auto;gap:.55rem;align-items:center;margin:.55rem 0;padding:.55rem;background:#f6f2ea;border:1px solid var(--line);border-radius:.45rem}.allocation-row,.plan-row{grid-template-columns:repeat(2,minmax(0,1fr)) auto}.icon-button{border:0;background:transparent;color:var(--danger);cursor:pointer}.attachment-list{list-style:none;padding:0;margin:.5rem 0}.attachment-list li{display:flex;gap:.5rem;align-items:center;padding:.45rem 0;border-bottom:1px solid var(--line)}.attachment-list small{color:#6d685a;margin-right:auto}.upload-row{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap;margin-top:.75rem}.quadrant-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.quadrant{padding:1rem;border:1px solid var(--line);border-radius:.55rem;background:#fff}.quadrant label{display:flex;justify-content:space-between;align-items:center;gap:.5rem;margin:.45rem 0}.quadrant input{max-width:8rem}.sample-row{grid-template-columns:repeat(5,minmax(0,1fr)) auto auto}.sample-row strong{grid-column:1/-1}.tree-row{grid-template-columns:repeat(5,minmax(0,1fr)) auto auto}.check-list{list-style:none;padding:0;margin:.75rem 0}.check-list li{padding:.28rem 0}.check-inline{display:flex;align-items:center;gap:.4rem;font-weight:500;padding:.15rem 0}.check-inline input{width:auto}@media(max-width:900px){.quadrant-grid{grid-template-columns:1fr}.repeat-row,.sample-row,.tree-row{grid-template-columns:1fr}.sample-row strong{grid-column:auto}.upload-row{align-items:stretch}.upload-row>*{width:100%}}
.mrv-tabs{display:flex;gap:.45rem;flex-wrap:wrap;margin:-.3rem 0 1rem}.mrv-tabs button{border:1px solid var(--line);border-radius:999px;background:white;color:#6d685a;padding:.4rem .75rem;font-weight:650}.mrv-tabs button.active,.mrv-tabs button:hover{border-color:var(--green);color:var(--green);background:var(--green2)}.controlled-change{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--line)}.controlled-change summary{color:var(--green);font-weight:700;cursor:pointer}.controlled-change .form{margin-top:1rem}

@media print{@page{size:A4;margin:1.8cm}body{background:white}.sidebar,.toolbar,.project-tabs,.mrv-tabs,.pagination,.actions,.row-actions,button,.report-preview-backdrop{display:none!important}.shell{display:block}.main{padding:0}.card{box-shadow:none;border:none;padding:0;margin-bottom:14px}.trace{max-height:none;overflow:visible;background:white;color:#3c382f;border:1px solid var(--line);padding:10px}}
.report-preview-backdrop{position:fixed;z-index:30;inset:0;background:#25231fcc;display:grid;place-items:center;padding:4vh 4vw}.report-preview-panel{width:min(90vw,1200px);height:90vh;background:#e7e5e1;border-radius:10px;overflow:hidden;display:grid;grid-template-rows:auto 1fr;box-shadow:0 18px 48px #0008}.report-preview-panel>header{background:#fff;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 18px;border-bottom:1px solid var(--line)}.report-preview-panel h2{margin:0;font-size:1.1rem}.report-preview-panel iframe{border:0;width:100%;height:100%;background:#e7e5e1}@media(max-width:700px){.report-preview-backdrop{padding:0}.report-preview-panel{width:100vw;height:100vh;border-radius:0}.report-preview-panel>header{align-items:flex-start;flex-direction:column}}

.plan-row{grid-template-columns:auto minmax(0,1fr) minmax(0,1fr) auto;background:var(--green2);border-color:var(--green)}.plan-index{font-weight:700;color:var(--green);white-space:nowrap;padding-right:.3rem}.plan-index strong{font-size:1.05em}.plan-field{display:flex;flex-direction:column;gap:.2rem;min-width:0}.plan-field-label{font-size:12px;color:#6d685a;font-weight:650}.plan-field-input{display:flex;align-items:center;gap:.4rem}.plan-field-input input{width:100%}.unit-suffix{color:#6d685a;font-size:13px;white-space:nowrap}

/* Evidence Modal Styles */
.evidence-modal{position:fixed;top:0;left:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;z-index:9999;animation:fadeIn .2s ease-in}.evidence-modal-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background-color:rgba(0,0,0,0.6);cursor:pointer}.evidence-modal-content{position:relative;background-color:white;border-radius:12px;box-shadow:0 8px 32px rgba(0,0,0,0.25);max-width:90vw;max-height:90vh;display:flex;flex-direction:column;z-index:10000;animation:slideUp .3s ease-out}.evidence-modal-header{padding:18px 22px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;flex-shrink:0}.evidence-modal-header h3{margin:0;font-size:16px;font-weight:650;word-break:break-word;max-width:calc(100% - 40px)}.evidence-modal-close{background:none;border:none;font-size:26px;cursor:pointer;padding:0 2px;color:#9a9285;flex-shrink:0;line-height:1}.evidence-modal-close:hover{color:#3c382f}.evidence-modal-body{padding:20px;overflow:auto;flex:1;background:white;display:flex;align-items:center;justify-content:center}.evidence-modal-body img{max-width:100%;max-height:100%;object-fit:contain}.evidence-modal-body embed{width:100%;height:100%}.evidence-modal-body p{margin:12px 0;color:#6d685a;text-align:center}.evidence-modal-body a{color:var(--green);text-decoration:underline}.evidence-modal-footer{padding:16px 22px;border-top:1px solid var(--line);display:flex;gap:10px;justify-content:flex-end;flex-shrink:0;background:#f6f2ea}@keyframes fadeIn{from{opacity:0}to{opacity:1}}@keyframes slideUp{from{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.change-policy-columns col:nth-child(1){width:26%}.change-policy-columns col:nth-child(2){width:16%}.change-policy-columns col:nth-child(3){width:14%}.change-policy-columns col:nth-child(4),.change-policy-columns col:nth-child(5){width:22%}.evidence-preview-image{max-width:100%;max-height:600px;object-fit:contain}.evidence-preview-pdf{width:100%;height:600px}
