:root{--navy:#173b53;--navy2:#244f69;--green:#168b68;--green2:#0f7557;--ink:#1d3445;--muted:#6c7f8c;--line:#d9e3e9;--bg:#f3f6f8;--white:#fff;--danger:#b54141;--shadow:0 8px 28px rgba(25,56,76,.08)}*{box-sizing:border-box}body{margin:0;font-family:"Noto Sans TC","Microsoft JhengHei",sans-serif;color:var(--ink);background:var(--bg);font-size:15px}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}.login{min-height:100vh;display:grid;place-items:center;background:linear-gradient(140deg,#153b52,#1b705d);padding:20px}.login-card{width:min(420px,100%);background:#fff;border-radius:22px;padding:34px;box-shadow:0 20px 80px #09263866}.brand-mark{width:58px;height:58px;border-radius:17px;background:linear-gradient(145deg,var(--green),#22aa7f);color:#fff;display:grid;place-items:center;font-size:22px;font-weight:800}.login h1{margin:20px 0 5px}.login p{color:var(--muted);margin:0 0 24px}.login label{display:block;margin:14px 0;color:#425866}.login input{margin-top:7px}.login button{width:100%;margin-top:12px}input,select,textarea{width:100%;border:1px solid #cbd9e1;border-radius:9px;padding:11px 12px;background:#fff;color:var(--ink)}input:focus,select:focus,textarea:focus{outline:3px solid #168b6820;border-color:var(--green)}textarea{min-height:90px;resize:vertical}.primary{border:0;border-radius:9px;background:var(--green);color:#fff;padding:11px 18px;font-weight:700;box-shadow:0 4px 12px #168b6830}.primary:hover{background:var(--green2)}.ghost,.back,.link{border:0;background:transparent;color:var(--navy);padding:8px}.error{color:var(--danger);margin-top:12px;min-height:20px}header{position:fixed;z-index:20;left:0;right:0;top:0;height:66px;background:var(--navy);color:#fff;display:flex;align-items:center;padding:0 22px 0 254px;box-shadow:0 3px 16px #112d3f33}header b{font-size:18px}header small{display:block;color:#c8d7df;margin-top:2px}.head-right{margin-left:auto;display:flex;align-items:center;gap:12px}.head-right .ghost{color:#fff;border:1px solid #ffffff55;border-radius:8px}aside{position:fixed;z-index:25;inset:0 auto 0 0;width:230px;background:#fff;border-right:1px solid var(--line);padding:24px 14px}.side-title{font-weight:800;color:var(--navy);font-size:20px;padding:6px 12px 24px}aside button{width:100%;border:0;background:transparent;border-radius:10px;padding:13px 14px;text-align:left;color:#526774;margin:2px 0;font-weight:650}aside button.active{background:#e6f4ef;color:var(--green2)}aside button small{float:right;font-size:10px}.side-note{font-size:12px;line-height:1.6;color:#78909c;background:#f3f6f8;border-radius:10px;padding:12px;margin-top:24px}main{margin-left:230px;padding:94px 28px 40px}.page{display:none;max-width:1480px;margin:auto}.page.active{display:block}.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:20px}.page h1{margin:0;font-size:26px;color:var(--navy)}.page-head p{margin:6px 0;color:var(--muted)}.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin-bottom:20px}.stat{background:#fff;border:1px solid var(--line);border-radius:15px;padding:18px 20px;box-shadow:var(--shadow)}.stat span{display:block;color:var(--muted)}.stat b{font-size:30px;color:var(--navy);display:block;margin-top:8px}.panel,.list-card,.site-card,.detail-card{background:#fff;border:1px solid var(--line);border-radius:15px;box-shadow:var(--shadow)}.panel{padding:18px}.panel-head{display:flex;align-items:center;justify-content:space-between}.panel h2{margin:0 0 15px}.site-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.site-card{padding:17px;cursor:pointer;transition:.15s}.site-card:hover{transform:translateY(-2px);border-color:#9bcbbb}.site-top{display:flex;justify-content:space-between;gap:10px}.site-card h3{margin:7px 0 4px;font-size:18px}.site-card p{margin:4px 0;color:var(--muted)}.code{font-size:12px;color:#79909d}.badge{display:inline-block;border-radius:99px;background:#e6f4ef;color:#0f7557;padding:5px 9px;font-size:12px}.site-metrics{display:flex;gap:20px;border-top:1px solid #edf1f3;margin-top:14px;padding-top:12px;color:#59707d}.site-metrics b{color:var(--navy)}.toolbar{display:grid;grid-template-columns:1fr auto auto;gap:9px;background:#fff;border:1px solid var(--line);border-radius:13px;padding:12px;margin-bottom:15px}.toolbar button{border:1px solid #b9c9d2;border-radius:8px;background:#fff;padding:8px 16px}.list{display:grid;gap:10px}.list-card{display:grid;grid-template-columns:130px 1fr auto;gap:18px;align-items:center;padding:15px 18px}.list-card h3{margin:0 0 5px}.list-card p{margin:2px 0;color:var(--muted)}.mini-actions{display:flex;gap:7px}.mini-actions button{border:1px solid #c8d6de;background:#fff;border-radius:7px;padding:7px 10px}.mini-actions .danger{color:var(--danger);border-color:#e6bbbb}.detail-hero{display:grid;grid-template-columns:1fr auto;gap:20px;margin:10px 0 17px;background:linear-gradient(125deg,var(--navy),var(--navy2));color:#fff;border-radius:17px;padding:22px}.detail-hero h1{color:#fff;margin:4px 0}.detail-hero p{color:#dce8ee;margin:5px 0}.scope{margin:14px 0;background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden}.scope-head{display:flex;align-items:center;justify-content:space-between;padding:14px 17px;background:#f8fafb}.scope-head h3{margin:0}.items{overflow:auto}.items table{width:100%;border-collapse:collapse;min-width:780px}.items th,.items td{padding:11px 13px;text-align:left;border-top:1px solid #e7edf1}.items th{font-size:12px;color:#647987;background:#fbfcfd}.empty{padding:22px;text-align:center;color:#82939e}.detail-section-title{display:flex;justify-content:space-between;align-items:center;margin:22px 0 8px}.detail-section-title h2{margin:0}.timeline{display:grid;gap:8px}.timeline div{border-left:3px solid #a7cfc2;padding:9px 14px;background:#fff;border-radius:0 9px 9px 0}.timeline small{color:var(--muted)}dialog{border:0;padding:0;background:transparent;width:min(720px,calc(100% - 24px));max-height:90vh}.modal-box{background:#fff;border-radius:17px;overflow:auto;max-height:90vh;box-shadow:0 25px 100px #102c3d55}.modal-head{position:sticky;top:0;z-index:2;background:var(--navy);color:#fff;display:flex;justify-content:space-between;align-items:center;padding:15px 20px}.modal-head h2{margin:0}.icon{border:0;background:transparent;color:inherit;font-size:23px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;padding:20px}.form-grid label{display:block;color:#516773}.form-grid label span{display:block;margin-bottom:6px}.form-grid .wide{grid-column:1/-1}.form-actions{grid-column:1/-1;display:flex;justify-content:flex-end;gap:10px;border-top:1px solid var(--line);padding-top:16px}.form-actions button{padding:10px 20px;border-radius:8px;border:1px solid #bbcbd4;background:#fff}.form-actions .primary{border:0}.check{display:flex!important;align-items:center;gap:8px}.check input{width:auto}#toast{position:fixed;z-index:100;right:20px;bottom:20px;background:#193e54;color:#fff;padding:12px 17px;border-radius:10px;box-shadow:var(--shadow);opacity:0;transform:translateY(15px);pointer-events:none;transition:.2s}#toast.show{opacity:1;transform:none}.mobile{display:none}
@media(max-width:850px){header{padding:0 12px;height:60px}.mobile{display:block}header small{display:none}.head-right span{display:none}aside{transform:translateX(-100%);transition:.2s;padding-top:75px;width:245px;box-shadow:8px 0 25px #122d3f22}aside.open{transform:none}main{margin:0;padding:80px 12px 28px}.page-head{align-items:center}.page h1{font-size:22px}.page-head p{font-size:13px}.cards{grid-template-columns:1fr 1fr;gap:9px}.stat{padding:13px}.stat b{font-size:24px}.site-grid{grid-template-columns:1fr}.toolbar{grid-template-columns:1fr}.toolbar button{width:100%}.list-card{grid-template-columns:1fr;padding:14px}.list-card .code{order:-1}.mini-actions{justify-content:flex-end}.detail-hero{grid-template-columns:1fr;padding:17px}.form-grid{grid-template-columns:1fr;padding:15px}.form-grid .wide{grid-column:auto}.side-note{display:none}}@media(max-width:430px){.cards{grid-template-columns:1fr 1fr}.page-head{flex-direction:column;align-items:stretch}.page-head .primary{width:100%}.login-card{padding:25px}.site-metrics{justify-content:space-between}}
[hidden]{display:none!important}
:root{}
.product-lookup{display:grid;grid-template-columns:1fr auto;gap:9px;padding:13px;border:1px solid #cfe0e7;border-radius:11px;background:#f5faf8}.product-lookup label{grid-column:1}.product-lookup button{align-self:end;border:1px solid #9fc7b9;border-radius:9px;background:#fff;color:var(--green2);padding:11px 15px;font-weight:700}.product-lookup select,.product-lookup small{grid-column:1/-1}.product-lookup small{color:var(--muted)}
@media(max-width:850px){.product-lookup{grid-template-columns:1fr}.product-lookup label,.product-lookup button,.product-lookup select,.product-lookup small{grid-column:1}.product-lookup button{width:100%}}
dialog{width:min(880px,calc(100% - 24px));max-height:none;overflow:hidden}.modal-box{overflow-y:auto;overflow-x:hidden}.form-grid>*{min-width:0}.product-lookup label{min-width:0}
@media(max-width:650px){dialog{width:calc(100% - 12px);max-height:96vh}.modal-box{max-height:96vh;border-radius:13px}.modal-head{padding:13px 15px}}
.project-flow{margin:16px 0}.flow-steps{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;margin-bottom:16px}.flow-steps>*{border:1px solid #cad8e1;border-radius:10px;background:#f4f8fa;color:#607887;padding:10px;text-align:center;font-weight:700}.flow-steps .done{background:#e6f5ee;color:#147557;border-color:#b8dfce}.flow-steps button{cursor:pointer;color:#164b68;background:#e7f1f6}.project-quick-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:14px}.project-quick-grid>div{border:1px solid #d8e3e9;border-radius:12px;padding:14px;background:#fbfdfe}.project-quick-grid h3{margin:0 0 6px}.project-quick-grid p{margin:0 0 12px;color:#587080;overflow-wrap:anywhere}.button-link{display:inline-flex;align-items:center;border:1px solid #b7c9d4;border-radius:7px;padding:7px 11px;color:#174761;text-decoration:none;background:white}.filter-banner{grid-column:1/-1;background:#e8f3f8;border:1px solid #c2dce8;border-radius:10px;padding:10px 14px;display:flex;align-items:center;justify-content:space-between}.supply-card{cursor:pointer}.supply-card .site-metrics{display:grid;grid-template-columns:repeat(3,1fr)}.responsive-table{overflow:auto}.responsive-table table{width:100%;border-collapse:collapse;min-width:900px}.responsive-table th,.responsive-table td{padding:11px 9px;border-bottom:1px solid #dce5ea;text-align:left;vertical-align:middle}.responsive-table th{background:#163f58;color:#fff;white-space:nowrap}.arrival-list{display:grid;gap:12px}.arrival-list article{border:1px solid #d5e1e7;border-radius:12px;padding:14px;background:#fbfdfe}.arrival-list article>div:first-child{display:flex;justify-content:space-between;gap:12px}.arrival-list p{margin:8px 0}.arrival-photos{display:flex;gap:8px;overflow:auto;margin-top:10px}.arrival-photos img{width:120px;height:90px;object-fit:cover;border-radius:8px;border:1px solid #ccd9e0}.arrival-entry{border:1px solid #d4e0e7;border-radius:10px;padding:12px;display:grid;gap:10px}.arrival-entry label{display:grid;grid-template-columns:1fr 120px;align-items:center;gap:10px}.supply-待到貨{background:#fff4d9;color:#805b00}.supply-部分到貨{background:#e5f1ff;color:#175e9a}.supply-已到齊{background:#e3f5eb;color:#15724f}.supply-已取消{background:#f2f3f4;color:#68747b}
@media(max-width:760px){.flow-steps{grid-template-columns:repeat(3,1fr);font-size:12px}.project-quick-grid{grid-template-columns:1fr}.supply-toolbar{grid-template-columns:1fr}.arrival-entry label{grid-template-columns:1fr}.arrival-entry input{width:100%}.supply-card .site-metrics{grid-template-columns:1fr 1fr}.project-flow .mini-actions{display:grid;grid-template-columns:1fr}.project-flow .mini-actions>*{justify-content:center}}
.supply-tabs{display:flex;gap:7px;overflow-x:auto;padding:2px 0 12px;scrollbar-width:thin}.supply-tabs button{white-space:nowrap;border:1px solid #c7d5dd;background:#fff;color:#496574;border-radius:999px;padding:9px 15px}.supply-tabs button.active{background:var(--navy);border-color:var(--navy);color:#fff}.supply-board{display:grid;gap:10px;margin-bottom:18px}.supply-row{display:grid;grid-template-columns:minmax(280px,1.4fr) minmax(430px,1.7fr) auto;gap:16px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px 16px;box-shadow:var(--shadow)}.supply-item-main{display:flex;align-items:center;gap:12px;min-width:0}.supply-item-main img{width:70px;height:64px;object-fit:contain;border:1px solid #d8e2e7;border-radius:8px;background:#fff}.supply-item-main h3{margin:5px 0 2px;font-size:17px}.supply-item-main p,.supply-item-main small{display:block;margin:2px 0;color:var(--muted);overflow-wrap:anywhere}.supply-numbers{display:grid;grid-template-columns:repeat(5,minmax(64px,1fr));gap:6px}.supply-numbers span{background:#f3f7f9;border-radius:8px;padding:8px;text-align:center;color:#6a7e8a;font-size:12px}.supply-numbers b{display:block;color:var(--navy);font-size:15px;margin-top:3px}.supply-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px}.supply-actions button,.arrival-history button{border:1px solid #becdd5;background:#fff;border-radius:8px;padding:8px 10px;white-space:nowrap}.supply-actions .primary{background:var(--green);border-color:var(--green);color:#fff}.form-context{display:flex;flex-direction:column;gap:4px;padding:13px 15px;background:#eef5f7;border-left:4px solid var(--navy);border-radius:8px}.form-context span{color:var(--muted)}.arrival-history{margin-top:18px}.arrival-history .arrival-list article{display:grid;grid-template-columns:1fr auto;align-items:center}.arrival-history .arrival-list article>div:first-child,.arrival-history .arrival-list article>p{grid-column:1}.arrival-history .mini-actions{grid-column:2;grid-row:1/3}.stage-待安排{background:#fff1d2;color:#805700}.stage-等待到貨{background:#e9f1ff;color:#275e98}.stage-可出貨{background:#e3f5eb;color:#147252}.stage-已出貨{background:#edf0f2;color:#4f6470}
@media(max-width:1050px){.supply-row{grid-template-columns:1fr}.supply-actions{justify-content:flex-start}}
@media(max-width:650px){.supply-tabs{margin-right:-12px}.supply-row{padding:12px;gap:11px}.supply-item-main img{width:58px;height:58px}.supply-numbers{grid-template-columns:repeat(3,1fr)}.supply-actions{display:grid;grid-template-columns:1fr 1fr}.supply-actions button{width:100%}.arrival-history .arrival-list article{display:block}.arrival-history .mini-actions{margin-top:10px;justify-content:flex-start}.arrival-history .mini-actions button{flex:1}.form-context{padding:11px}}
.arrival-photo-picker{border:1px solid #cbd9e1;border-radius:12px;padding:14px;background:#f8fbfc}.arrival-photo-picker>p{margin:4px 0 12px;color:var(--muted)}.arrival-photo-buttons{display:grid;grid-template-columns:1fr 1fr;gap:9px}.arrival-photo-buttons label{display:flex;align-items:center;justify-content:center;min-height:48px;border-radius:10px;font-weight:750;cursor:pointer}.arrival-photo-buttons input{display:none}.camera-button{background:var(--green);color:#fff}.album-button{background:#e8f1f6;color:var(--navy);border:1px solid #c7d8e2}.arrival-photo-preview{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:12px;min-height:70px;align-items:center}.arrival-photo-preview>span{grid-column:1/-1;text-align:center;color:#8798a2}.arrival-photo-preview figure{position:relative;margin:0;border:1px solid #d2dfe5;border-radius:9px;overflow:hidden;background:#fff}.arrival-photo-preview img{width:100%;height:86px;object-fit:cover;display:block}.arrival-photo-preview button{position:absolute;right:4px;top:4px;width:27px;height:27px;border:0;border-radius:50%;background:#173b53dd;color:#fff;font-size:18px;line-height:1}.arrival-photo-preview figcaption{text-align:center;padding:4px;font-size:11px;color:var(--muted)}
@media(max-width:650px){.arrival-photo-buttons{grid-template-columns:1fr}.arrival-photo-buttons label{min-height:52px;font-size:16px}.arrival-photo-preview{grid-template-columns:repeat(3,minmax(0,1fr))}.arrival-photo-preview img{height:80px}}
.arrival-photo-buttons .camera-button{color:#fff}
.dispatch-toolbar{grid-template-columns:1fr 180px auto}.dispatch-picker{border:1px solid #cfdae1;border-radius:11px;padding:14px;background:#f8fbfc}.dispatch-picker>p{color:var(--muted);margin:4px 0 11px}.check-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:10px}.check-grid .check{background:#fff;border:1px solid #d5e0e6;border-radius:8px;padding:9px}.dispatch-summary{display:grid;grid-template-columns:1fr 1fr 1.5fr;gap:10px}.dispatch-summary>div{background:#f2f6f8;border-radius:10px;padding:12px}.dispatch-summary small{display:block;color:var(--muted);margin-bottom:5px}.dispatch-summary b{display:block}.dispatch-description{white-space:pre-wrap;border-left:4px solid var(--green);padding:10px 13px;margin:14px 0 0}.daily-log-list{display:grid;gap:12px}.daily-card{padding:15px}.daily-head{display:flex;justify-content:space-between;align-items:center}.daily-head>div{display:flex;align-items:center;gap:10px}.daily-card h3{white-space:pre-wrap}.daily-workers{display:flex;flex-wrap:wrap;gap:7px;margin-top:12px}.daily-workers span{background:#eef4f7;border-radius:8px;padding:8px 10px}.daily-workers b{margin-right:8px}.daily-photos{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}.daily-photos figure{margin:0;border:1px solid #d2dce2;border-radius:9px;overflow:hidden}.daily-photos img{width:100%;height:240px;object-fit:cover;display:block}.daily-photos figcaption{text-align:center;padding:7px;background:#f4f7f9}.daily-worker-editor{display:grid;gap:8px;margin-top:10px}.daily-worker-editor>div{display:grid;grid-template-columns:150px 1fr 1fr 110px 1.4fr;gap:8px;align-items:end;background:#fff;border:1px solid #d6e0e6;border-radius:9px;padding:10px}.photo-pair{display:grid;grid-template-columns:1fr 1fr;gap:12px}.warranty-card.soon{border-left:5px solid #db9a20}.warranty-card.expired{border-left:5px solid #b24b4b}.dispatch-已完成{background:#e5f4eb;color:#15704f}.dispatch-施工中{background:#e2eff8;color:#1c5d84}
@media(max-width:850px){.dispatch-toolbar{grid-template-columns:1fr}.check-grid{grid-template-columns:1fr 1fr}.dispatch-summary{grid-template-columns:1fr}.daily-worker-editor>div{grid-template-columns:1fr 1fr}.daily-worker-editor>div .check,.daily-worker-editor>div>input{grid-column:1/-1}.daily-photos img{height:180px}}
@media(max-width:500px){.check-grid,.photo-pair,.daily-photos{grid-template-columns:1fr}.daily-worker-editor>div{grid-template-columns:1fr}.daily-worker-editor>div>*{grid-column:1!important}.warranty-card{display:grid;grid-template-columns:1fr}.daily-photos img{height:220px}}
.source-panel{margin-top:18px}.source-panel>p{color:var(--muted)}.source-panel>div{display:grid;grid-template-columns:140px 1fr;gap:10px;padding:8px 0;border-top:1px solid #e5ecef}.source-panel>div span{overflow-wrap:anywhere;color:#526b79}@media(max-width:600px){.source-panel>div{grid-template-columns:1fr;gap:2px}}
@media print{@page{size:A4;margin:8mm}header,aside,.back,.detail-hero .mini-actions,#toast{display:none!important}body{background:#fff;font-size:14pt;color:#111}main{margin:0;padding:0}.page{display:none!important;max-width:none}.page.active{display:block!important}.detail-hero{display:block;background:#fff;color:#111;border:2px solid #173b53;border-radius:0;padding:10mm 8mm}.detail-hero h1{color:#173b53;font-size:22pt}.detail-hero p{color:#222}.panel,.daily-card{box-shadow:none;border:1px solid #777;border-radius:0;break-inside:avoid}.dispatch-summary{grid-template-columns:1fr 1fr 1.5fr}.daily-photos img{height:75mm}.daily-workers span{border:1px solid #aaa;background:#fff}.detail-section-title{margin-top:8mm}.warranty-card{box-shadow:none}.daily-card{margin-bottom:5mm}}
.qsheet-actions{display:flex;flex-direction:column;gap:5px;justify-content:center}.qsheet-actions button{padding:6px 8px;white-space:nowrap}.source-picker-form{min-width:min(860px,88vw)}.source-tabs{display:flex;gap:8px;margin-bottom:14px}.source-tabs button.active{background:#173e57;color:#fff;border-color:#173e57}.search-row,.source-filter-grid{display:grid;grid-template-columns:1fr auto;gap:8px;margin-bottom:12px}.source-filter-grid{grid-template-columns:repeat(4,1fr) auto}.source-filter-grid .wide{grid-column:1/5}.source-results{max-height:48vh;overflow:auto;display:grid;gap:8px;margin:10px 0;padding:4px}.source-result{display:grid;grid-template-columns:auto 70px 1fr;gap:12px;align-items:center;border:1px solid #d7e1e7;border-radius:10px;padding:9px;background:#fff;cursor:pointer}.source-result:hover{border-color:#2a6d74;background:#f5faf9}.source-result img,.source-no-photo{width:70px;height:56px;object-fit:contain;border-radius:6px;background:#eef3f6;display:grid;place-items:center;font-size:11px;color:#71808a}.source-result span{display:flex;flex-direction:column;gap:3px}.source-result small,.source-result em{font-style:normal;color:#607482}.source-direct{text-align:center;padding:35px 15px}.source-direct p{color:#607482}.muted{color:#71808a}@media(max-width:720px){.source-picker-form{min-width:0}.source-filter-grid{grid-template-columns:1fr 1fr}.source-filter-grid .wide{grid-column:1/3}.source-filter-grid button{grid-column:1/3}.source-result{grid-template-columns:auto 55px 1fr}.source-result img,.source-no-photo{width:55px;height:50px}}
.project-spec-intro{display:flex;flex-direction:column;gap:6px;padding:14px 16px;margin-bottom:14px;border-radius:12px;background:#eef5f8;color:#173e57}.project-spec-intro span{font-size:14px;color:#536b78}.project-spec-list{display:grid;gap:10px}.project-spec-list>button{display:flex;flex-direction:column;align-items:flex-start;gap:5px;width:100%;padding:14px 16px;text-align:left;border:1px solid #cad8df;border-radius:12px;background:#fff}.project-spec-list>button:hover{border-color:#17856b;background:#f5fbf9}.project-spec-list small{color:#687d87}.project-spec-form textarea{min-height:78px}
.archive-status{display:block;margin:-4px 0 12px;color:#647784}.archive-status.success{color:#13795f}.archive-status.failed{color:#b13a3a}
/* Keep action labels readable when contextual button rules override the base background. */
button{color:var(--ink)}
button.primary,.mini-actions button.primary,.form-actions button.primary,.version-actions button.primary{background:var(--green);border-color:var(--green);color:#fff}
button.primary:hover,.mini-actions button.primary:hover,.form-actions button.primary:hover,.version-actions button.primary:hover{background:var(--green2);border-color:var(--green2);color:#fff}
button:focus-visible{outline:3px solid #168b6840;outline-offset:2px}
