:root{
    --black:#0b0b0b;
    --ink:#151515;
    --white:#fff;
    --off:#f5f5f1;
    --line:#e1dfd7;
    --muted:#74736e;
    --gold:#c9a227;
    --gold-dark:#8e7114;
    --success:#2d7543;
    --danger:#aa3e3e;
    --radius:14px;
    --max:1180px;
}
*{box-sizing:border-box}
html{background:var(--off)}
body{
    margin:0;
    color:var(--ink);
    background:var(--off);
    font-family:Arial,Helvetica,sans-serif;
    line-height:1.5;
}
a{color:inherit}
button,input,select,textarea{font:inherit}
.tech-header{
    position:sticky;
    top:0;
    z-index:30;
    background:var(--black);
    color:#fff;
}
.tech-header-inner{
    width:min(var(--max),calc(100% - 36px));
    min-height:72px;
    margin:auto;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
}
.tech-brand{
    text-decoration:none;
    font-size:.88rem;
    font-weight:900;
    letter-spacing:.13em;
    white-space:nowrap;
}
.tech-brand span,.tech-login-brand span{color:var(--gold)}
.tech-brand small{
    margin-left:7px;
    color:#777;
    font-size:.58rem;
    letter-spacing:.1em;
}
.tech-nav{display:flex;align-items:center;gap:8px}
.tech-nav a,.tech-nav>span{
    padding:8px 10px;
    border-radius:8px;
    color:#aaa;
    text-decoration:none;
    font-size:.78rem;
    font-weight:800;
}
.tech-nav a:hover,.tech-nav a.active{background:#1c1c1c;color:#fff}
.tech-main{
    width:min(var(--max),calc(100% - 36px));
    margin:auto;
    padding:42px 0 90px;
}
.page-header{margin-bottom:26px}
.eyebrow{
    margin:0 0 8px;
    color:var(--gold-dark);
    font-size:.68rem;
    font-weight:900;
    letter-spacing:.14em;
}
.page-header h1{
    margin:0;
    font-size:clamp(2rem,5vw,3.8rem);
    letter-spacing:-.045em;
    line-height:1;
}
.page-header p{
    max-width:720px;
    margin:12px 0 0;
    color:var(--muted);
}
.notice{
    margin:0 0 20px;
    padding:13px 15px;
    border:1px solid #e2d69e;
    border-left:3px solid var(--gold);
    border-radius:9px;
    background:#fffdf4;
}
.notice.error{
    color:#8d3434;
    border-color:#e6c6c6;
    border-left-color:var(--danger);
    background:#fff7f7;
}
.section-header{
    margin:32px 0 13px;
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:14px;
}
.section-header h2{margin:0;font-size:1.25rem}
.section-header p{margin:4px 0 0;color:var(--muted);font-size:.82rem}
.tech-summary-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:12px;
}
.summary-card{
    padding:18px;
    border:1px solid var(--line);
    border-radius:var(--radius);
    background:#fff;
}
.summary-card span{
    display:block;
    color:var(--muted);
    font-size:.7rem;
    font-weight:900;
    text-transform:uppercase;
    letter-spacing:.08em;
}
.summary-card strong{
    display:block;
    margin-top:5px;
    font-size:2rem;
}
.tech-service-list{display:grid;gap:10px}
.tech-service-card{
    display:grid;
    grid-template-columns:135px minmax(0,1fr) auto;
    gap:18px;
    align-items:center;
    padding:17px;
    border:1px solid var(--line);
    border-radius:12px;
    background:#fff;
    text-decoration:none;
    transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease;
}
.tech-service-card:hover{
    transform:translateY(-1px);
    border-color:#cfc59f;
    box-shadow:0 10px 28px rgba(0,0,0,.045);
}
.tech-service-date strong,.tech-service-date span{display:block}
.tech-service-date span{margin-top:3px;color:var(--muted);font-size:.75rem}
.tech-service-title{font-weight:900}
.tech-service-meta{margin-top:3px;color:var(--muted);font-size:.8rem}
.tech-service-main small{display:block;margin-top:4px;color:#8c8a83;font-size:.67rem}
.mini-progress{
    height:5px;
    margin-top:9px;
    overflow:hidden;
    border-radius:99px;
    background:#ecebe5;
}
.mini-progress span{display:block;height:100%;background:var(--gold)}
.tech-service-state{
    display:flex;
    align-items:center;
    gap:10px;
}
.badge{
    display:inline-flex;
    width:max-content;
    padding:5px 8px;
    border-radius:999px;
    background:#efefec;
    color:#555;
    font-size:.65rem;
    font-weight:900;
    text-transform:uppercase;
    letter-spacing:.04em;
}
.badge.gold{background:#f5edce;color:#7d6413}
.badge.success{background:#e7f3e9;color:var(--success)}
.badge.danger{background:#f8e5e5;color:#9c3737}
.empty{
    padding:28px;
    border:1px dashed #d3d1c9;
    border-radius:12px;
    background:#fff;
    color:var(--muted);
    text-align:center;
}
.muted-list{opacity:.72}
.btn{
    min-height:42px;
    padding:0 15px;
    border:0;
    border-radius:8px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:7px;
    cursor:pointer;
    text-decoration:none;
    font-weight:900;
}
.btn-primary{background:var(--gold);color:#111}
.btn-dark{background:#111;color:#fff}
.btn-light{background:#fff;border:1px solid #d3d1c9;color:#333}
.btn-danger{background:#fff;border:1px solid #e6c5c5;color:var(--danger)}
.btn:disabled{opacity:.45;cursor:not-allowed}
.tech-login-body{
    min-height:100vh;
    display:grid;
    place-items:center;
    padding:24px;
    background:#0b0b0b;
    color:#fff;
}
.tech-login-card{
    width:min(430px,100%);
    padding:34px;
    border:1px solid #242424;
    border-radius:16px;
    background:#111;
}
.tech-login-brand{
    margin-bottom:34px;
    font-size:.9rem;
    font-weight:900;
    letter-spacing:.14em;
}
.tech-login-card h1{margin:0 0 8px;font-size:2.6rem}
.tech-login-card>p:not(.eyebrow){margin:0 0 24px;color:#888}
.tech-login-card label{
    display:block;
    margin-top:13px;
    color:#bbb;
    font-size:.78rem;
    font-weight:800;
}
.tech-login-card input{
    width:100%;
    margin-top:6px;
    padding:13px;
    border:1px solid #333;
    border-radius:8px;
    background:#171717;
    color:#fff;
    outline:none;
}
.tech-login-card input:focus{border-color:var(--gold)}
.tech-login-card .btn{width:100%;margin-top:18px}

.service-readonly-grid{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:10px;
    margin-bottom:18px;
}
.info-card{
    padding:16px;
    border:1px solid var(--line);
    border-radius:11px;
    background:#fff;
}
.info-card span{display:block;color:var(--muted);font-size:.66rem;font-weight:900;text-transform:uppercase;letter-spacing:.07em}
.info-card strong{display:block;margin-top:5px;font-size:.9rem}
.service-notes{
    margin:0 0 20px;
    padding:16px;
    border:1px solid #e4e1d7;
    border-radius:11px;
    background:#fffdf5;
}
.service-notes strong{display:block;margin-bottom:5px}
.service-notes p{margin:0;color:#5f5c52;white-space:pre-wrap;font-size:.84rem}
.execution-bar{
    position:sticky;
    top:82px;
    z-index:20;
    margin-bottom:18px;
    padding:14px 16px;
    border:1px solid var(--line);
    border-radius:12px;
    background:rgba(255,255,255,.96);
    box-shadow:0 10px 28px rgba(0,0,0,.07);
    backdrop-filter:blur(12px);
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
}
.execution-state strong,.execution-state span{display:block}
.execution-state span{margin-top:2px;color:var(--muted);font-size:.74rem}
.progress-large{
    flex:1;
    max-width:330px;
    height:8px;
    overflow:hidden;
    border-radius:99px;
    background:#ecebe5;
}
.progress-large span{display:block;height:100%;background:var(--gold)}
.service-workspace-tabs{
    display:flex;
    gap:7px;
    margin:28px 0 16px;
    padding:5px;
    overflow-x:auto;
    border:1px solid var(--line);
    border-radius:12px;
    background:#fff;
    scrollbar-width:none;
}
.service-workspace-tabs::-webkit-scrollbar{display:none}
.service-workspace-tab{
    flex:0 0 auto;
    min-height:42px;
    padding:0 13px;
    border:0;
    border-radius:8px;
    background:transparent;
    color:#696862;
    cursor:pointer;
    font-size:.76rem;
    font-weight:900;
    white-space:nowrap;
}
.service-workspace-tab span{
    margin-left:6px;
    padding:3px 6px;
    border-radius:999px;
    background:#efeee8;
    color:#77756e;
    font-size:.62rem;
}
.service-workspace-tab:hover{
    background:#f7f6f2;
    color:#111;
}
.service-workspace-tab.is-active{
    background:#111;
    color:#fff;
}
.service-workspace-tab.is-active span{
    background:rgba(255,255,255,.13);
    color:#fff;
}
.tech-tabs-ready .service-workspace-panel{
    display:none;
}
.tech-tabs-ready .service-workspace-panel.is-active{
    display:block;
}
.workspace-heading{
    margin-top:18px;
}
.checklist-room-tabs{
    display:flex;
    gap:7px;
    margin-bottom:12px;
    padding-bottom:3px;
    overflow-x:auto;
    scrollbar-width:none;
}
.checklist-room-tabs::-webkit-scrollbar{display:none}
.checklist-room-tab{
    flex:0 0 auto;
    min-width:120px;
    padding:10px 12px;
    border:1px solid #d9d7cf;
    border-radius:9px;
    background:#fff;
    color:#5f5e58;
    cursor:pointer;
    text-align:left;
}
.checklist-room-tab strong,
.checklist-room-tab span{
    display:block;
}
.checklist-room-tab strong{
    font-size:.76rem;
}
.checklist-room-tab span{
    margin-top:3px;
    color:#99968d;
    font-size:.62rem;
    font-weight:800;
}
.checklist-room-tab:hover{
    border-color:#bbb7aa;
}
.checklist-room-tab.is-active{
    border-color:#c6a233;
    background:#fffaf0;
    box-shadow:inset 0 0 0 1px rgba(201,162,39,.18);
    color:#111;
}
.checklist-room-tab.is-active span{
    color:var(--gold-dark);
}
.tech-tabs-ready .checklist-section{
    display:none;
}
.tech-tabs-ready .checklist-section.is-active{
    display:block;
}
.workspace-empty{
    margin-top:18px;
}
.protocol-chip-list{
    display:flex;
    flex-wrap:wrap;
    gap:5px;
    margin-top:7px;
}
.protocol-chip-list .protocol-chip{
    margin-top:0;
}
button.protocol-chip{
    border:0;
    font-family:inherit;
    line-height:inherit;
    cursor:pointer;
}
.protocol-chip:hover{
    background:#eadb9e;
    color:#5f4a09;
}
.checklist-sections{display:grid;gap:16px}
.checklist-section{
    overflow:hidden;
    border:1px solid var(--line);
    border-radius:13px;
    background:#fff;
}
.checklist-section-header{
    padding:14px 16px;
    border-bottom:1px solid var(--line);
    background:#faf9f6;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
}
.checklist-section-header h2{margin:0;font-size:1rem}
.checklist-section-header span{color:var(--muted);font-size:.7rem;font-weight:800}
.checklist-item{
    display:grid;
    grid-template-columns:34px 52px minmax(0,1fr) auto;
    gap:12px;
    align-items:start;
    padding:14px 16px;
    border-bottom:1px solid #efeee9;
}
.checklist-item:last-child{border-bottom:0}
.checklist-item.completed{background:#fbfdfb}
.check-toggle{
    width:28px;
    height:28px;
    border:1px solid #cfcdc5;
    border-radius:7px;
    display:grid;
    place-items:center;
    background:#fff;
    color:#fff;
    cursor:pointer;
    font-weight:900;
}
.checklist-item.completed .check-toggle{
    border-color:var(--success);
    background:var(--success);
}
.na-toggle{
    min-height:28px;
    padding:0 7px;
    border:1px solid #d7d4cb;
    border-radius:7px;
    background:#fff;
    color:#777;
    cursor:pointer;
    font-size:.62rem;
    font-weight:900;
}
.checklist-item.not-applicable .na-toggle{
    border-color:#aaa79d;
    background:#ecebe6;
    color:#444;
}
.checklist-item.not-applicable .checklist-copy strong{
    color:#8b8981;
    text-decoration:line-through;
}
.checklist-copy strong{display:block;font-size:.86rem}
.checklist-copy small{display:block;margin-top:3px;color:var(--muted);font-size:.7rem;line-height:1.45}
.protocol-chip{
    display:inline-flex;
    margin-top:7px;
    padding:4px 7px;
    border-radius:999px;
    background:#f5edcf;
    color:#765e12;
    font-size:.62rem;
    font-weight:900;
}
.photo-actions{
    min-width:110px;
    text-align:right;
}
.photo-actions label{
    display:inline-flex;
    min-height:34px;
    padding:0 10px;
    align-items:center;
    border:1px solid #d5d2c8;
    border-radius:7px;
    background:#fff;
    cursor:pointer;
    font-size:.68rem;
    font-weight:900;
}
.photo-actions input{display:none}
.photo-hint{display:block;margin-top:4px;color:var(--gold-dark);font-size:.6rem;font-weight:900}
.item-photos{
    grid-column:2 / -1;
    display:flex;
    flex-wrap:wrap;
    gap:7px;
}
.item-photos img{
    width:74px;
    height:74px;
    object-fit:cover;
    border-radius:8px;
    border:1px solid #ddd9cf;
}
.protocol-search{
    margin-top:18px;
    padding:14px;
    border:1px solid var(--line);
    border-radius:11px;
    background:#faf9f6;
}
.protocol-search label{
    display:block;
    margin-bottom:7px;
    font-size:.72rem;
    font-weight:900;
}
.protocol-search input{
    width:100%;
    min-height:42px;
    padding:0 12px;
    border:1px solid #d5d2c8;
    border-radius:8px;
    background:#fff;
    color:#111;
    font:inherit;
    font-size:.8rem;
}
.protocol-search input:focus{
    outline:2px solid rgba(198,162,51,.28);
    border-color:#c6a233;
}
.protocol-search-count{
    display:block;
    margin-top:7px;
    color:var(--muted);
    font-size:.68rem;
    font-weight:800;
}
.protocol-library{
    margin-top:26px;
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px;
}
.protocol-card{
    padding:16px;
    border:1px solid var(--line);
    border-radius:11px;
    background:#fff;
    transition:border-color .2s ease,box-shadow .2s ease,background .2s ease;
}
.protocol-card.protocol-card-highlight{
    border-color:#c6a233;
    background:#fffaf0;
    box-shadow:0 0 0 3px rgba(198,162,51,.18);
}
.protocol-card span{color:var(--gold-dark);font-size:.64rem;font-weight:900}
.protocol-card h3{margin:5px 0 7px;font-size:.94rem}
.protocol-card p{margin:0;color:var(--muted);font-size:.76rem;line-height:1.55}
.photo-gallery{
    display:grid;
    grid-template-columns:repeat(auto-fill,minmax(140px,1fr));
    gap:10px;
}
.photo-card{
    overflow:hidden;
    border:1px solid var(--line);
    border-radius:10px;
    background:#fff;
}
.photo-card img{width:100%;aspect-ratio:1/1;object-fit:cover}
.photo-card div{padding:8px;font-size:.68rem;color:var(--muted)}
@media(max-width:800px){
    .tech-nav>span{display:none}
    .service-workspace-tabs{
        margin-top:22px;
        border-radius:10px;
    }
    .service-workspace-tab{
        min-height:40px;
        padding:0 11px;
        font-size:.72rem;
    }
    .checklist-room-tab{
        min-width:108px;
    }
    .tech-main{width:min(100% - 24px,var(--max));padding-top:28px}
    .tech-summary-grid{grid-template-columns:1fr 1fr}
    .tech-service-card{grid-template-columns:1fr auto;gap:10px}
    .tech-service-date{grid-column:1}
    .tech-service-main{grid-column:1}
    .tech-service-state{grid-column:2;grid-row:1 / span 2}
    .service-readonly-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
    .execution-bar{top:76px;align-items:stretch;flex-direction:column}
    .progress-large{max-width:none;width:100%}
    .checklist-item{grid-template-columns:32px 48px minmax(0,1fr)}
    .photo-actions{grid-column:3;text-align:left}
    .item-photos{grid-column:3}
    .protocol-library{grid-template-columns:1fr}
}
@media(max-width:520px){
    .tech-header-inner{width:calc(100% - 22px)}
    .tech-brand{font-size:.77rem}
    .tech-nav a{padding:8px 7px;font-size:.7rem}
    .tech-summary-grid{grid-template-columns:1fr}
    .service-readonly-grid{grid-template-columns:1fr}
}
