:root{
    font-family:Inter,"Segoe UI",Arial,sans-serif;
    color:#1f2937;
    background:#f4f6f8;
    font-synthesis:none;
    --navy-950:#111827;
    --navy-900:#172033;
    --navy-800:#243047;
    --navy-700:#334155;
    --blue-600:#2563eb;
    --blue-50:#eff6ff;
    --surface:#ffffff;
    --surface-soft:#f8fafc;
    --line:#e5e7eb;
    --line-strong:#cbd5e1;
    --text:#1f2937;
    --muted:#64748b;
    --success:#15803d;
    --success-bg:#ecfdf3;
    --warning:#a16207;
    --warning-bg:#fffbeb;
    --danger:#b42318;
    --danger-bg:#fef3f2;
    --info:#1d4ed8;
    --info-bg:#eff6ff;
    --radius:12px;
    --shadow:0 8px 28px rgba(15,23,42,.06);
}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;background:#f4f6f8;color:var(--text)}
body{min-width:320px}
a{color:inherit}
button,input,select,textarea{font:inherit}
button:disabled{cursor:not-allowed;opacity:.5}
.app-shell{min-height:100vh;display:flex}
.sidebar{position:fixed;z-index:30;inset:0 auto 0 0;width:252px;background:var(--navy-900);color:#fff;padding:18px 14px;display:flex;flex-direction:column}
.sidebar__header{display:flex;align-items:center;justify-content:space-between;padding:4px 4px 18px}
.brand{display:flex;align-items:center;gap:11px;text-decoration:none;color:#fff}
.brand__mark{display:grid;place-items:center;width:36px;height:36px;border-radius:9px;background:#fff;color:var(--navy-900);font-weight:900;font-size:19px}
.brand strong{display:block;font-size:15px;letter-spacing:.08em}.brand small{display:block;margin-top:2px;font-size:11px;font-weight:500;color:#94a3b8;letter-spacing:.04em}
.sidebar-nav{display:flex;flex-direction:column;gap:4px;overflow:auto}
.nav-group-label{padding:19px 12px 7px;color:#75849b;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.12em}
.sidebar-nav a{min-height:42px;display:flex;align-items:center;gap:11px;padding:9px 11px;border-radius:9px;text-decoration:none;color:#cbd5e1;font-size:14px;font-weight:600;transition:.15s ease}
.sidebar-nav a:hover{background:rgba(255,255,255,.06);color:#fff}.sidebar-nav a.active{background:#fff;color:var(--navy-900);box-shadow:0 4px 14px rgba(0,0,0,.12)}
.nav-icon{width:22px;text-align:center;font-size:17px;font-weight:400}
.sidebar__footer{margin-top:auto;padding:18px 10px 5px;border-top:1px solid rgba(255,255,255,.08)}.release-label{font-size:12px;font-weight:700;color:#cbd5e1}.release-note{margin-top:4px;font-size:11px;color:#64748b}
.sidebar__close{display:none;color:#fff}.menu-backdrop{display:none}
.app-main{min-width:0;flex:1;margin-left:252px}
.topbar{height:68px;position:sticky;top:0;z-index:20;background:rgba(255,255,255,.94);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 28px}
.topbar__left,.topbar__right{display:flex;align-items:center;gap:14px}.topbar__product strong{display:block;font-size:14px}.topbar__product span{display:block;margin-top:2px;color:var(--muted);font-size:11px}
.icon-button{border:0;background:transparent;border-radius:8px;padding:7px 9px;color:var(--navy-700);font-size:19px;cursor:pointer}.icon-button:hover{background:#f1f5f9}.menu-button{display:none}
.system-pill{display:flex;align-items:center;gap:7px;border:1px solid var(--line);border-radius:999px;padding:7px 10px;font-size:12px;color:#475569}.system-dot{width:8px;height:8px;border-radius:50%;background:#f59e0b}.system-dot--ok{background:#22c55e}.system-dot--warning{background:#f59e0b}
.user-summary{display:flex;align-items:center;gap:9px;padding-left:4px}.user-avatar{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#e8eef7;color:#243047;font-size:12px;font-weight:800}.user-summary__text strong,.user-summary__text span{display:block;max-width:180px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-summary__text strong{font-size:12px}.user-summary__text span{color:var(--muted);font-size:10px;margin-top:2px}
.content{max-width:1500px;margin:0 auto;padding:30px 30px 60px}
.page-heading{display:flex;justify-content:space-between;gap:24px;align-items:flex-end;margin-bottom:22px}.page-heading h1{margin:5px 0 5px;font-size:28px;line-height:1.12;letter-spacing:-.025em}.page-heading p{margin:0;color:var(--muted);font-size:14px}.page-heading__actions{display:flex;align-items:center;gap:9px;flex-shrink:0}.eyebrow{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.12em;color:#64748b}.eyebrow--light{color:#93a4bb}
.button{display:inline-flex;min-height:38px;align-items:center;justify-content:center;gap:7px;border:1px solid transparent;border-radius:9px;padding:8px 14px;text-decoration:none;font-weight:700;font-size:13px;cursor:pointer;transition:.15s ease}.button-primary{background:var(--navy-900);color:#fff}.button-primary:hover{background:#0f172a}.button-secondary{background:#fff;color:#334155;border-color:var(--line-strong)}.button-secondary:hover{background:#f8fafc}.button-ghost{background:transparent;color:#475569;border-color:transparent}.button-ghost:hover{background:#f1f5f9}.button-small{min-height:34px;padding:6px 11px;font-size:12px}.text-link{font-size:12px;color:#475569;text-decoration:none;font-weight:700}.text-link:hover{color:#0f172a}
.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 2px 9px rgba(15,23,42,.025);padding:20px;min-width:0}.panel__header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:17px}.panel__header h2{margin:0;font-size:16px}.panel__header p{margin:4px 0 0;color:var(--muted);font-size:12px}
.metrics-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:16px}.metric-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:18px;display:flex;gap:14px;box-shadow:0 2px 9px rgba(15,23,42,.025)}.metric-card__icon{width:42px;height:42px;display:grid;place-items:center;border-radius:10px;background:#edf2f7;color:#26344a;font-size:18px;font-weight:800;flex:0 0 auto}.metric-card__label{font-size:12px;color:var(--muted);font-weight:600}.metric-card__value{font-size:27px;line-height:1;margin:6px 0;font-weight:800;letter-spacing:-.03em}.metric-card__hint{font-size:10px;color:#94a3b8}
.dashboard-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.panel--span-2{grid-column:span 2}
.health-list{display:grid;gap:1px}.health-list div{display:flex;justify-content:space-between;align-items:center;padding:10px 0;border-bottom:1px solid #f1f5f9;font-size:12px}.health-list div:last-child{border-bottom:0}.health-list span{color:var(--muted)}.health-ok{color:var(--success)}.health-bad{color:var(--danger)}
.attention-list,.compact-list{display:grid}.attention-item{display:grid;grid-template-columns:auto 1fr auto;gap:11px;align-items:center;padding:11px 0;border-bottom:1px solid #f1f5f9}.attention-item:last-child{border-bottom:0}.attention-item__marker{width:8px;height:8px;border-radius:50%;background:#ef4444}.attention-item__main strong,.attention-item__main span{display:block}.attention-item__main strong{font-size:12px}.attention-item__main span{margin-top:3px;font-size:11px;color:var(--muted)}.attention-item__date{font-size:11px;color:#b42318;font-weight:700}
.compact-list__item{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:10px 0;border-bottom:1px solid #f1f5f9}.compact-list__item:last-child{border-bottom:0}.compact-list__item strong,.compact-list__item span{display:block}.compact-list__item strong{font-size:12px}.compact-list__item div>span{margin-top:3px;font-size:10px;color:var(--muted)}
.status-badge{display:inline-flex;align-items:center;min-height:24px;padding:3px 8px;border-radius:999px;font-size:10px;font-weight:800;white-space:nowrap}.status-neutral{background:#f1f5f9;color:#475569}.status-info{background:var(--info-bg);color:var(--info)}.status-success{background:var(--success-bg);color:var(--success)}.status-warning{background:var(--warning-bg);color:var(--warning)}.status-danger{background:var(--danger-bg);color:var(--danger)}
.filter-bar{display:flex;align-items:center;gap:10px;margin-bottom:16px}.filter-bar--wrap{flex-wrap:wrap}.search-box{display:flex;align-items:center;gap:8px;flex:1;min-width:260px}.search-box__icon{position:relative;margin-right:-33px;margin-left:11px;z-index:1;color:#94a3b8}.search-box input{padding-left:34px}.filter-select{width:auto;min-width:170px}.result-count{margin-left:auto;color:var(--muted);font-size:11px;white-space:nowrap}
input,select,textarea{width:100%;min-height:38px;padding:8px 11px;border:1px solid var(--line-strong);border-radius:8px;background:#fff;color:var(--text);outline:none;transition:.15s ease}input:focus,select:focus,textarea:focus{border-color:#64748b;box-shadow:0 0 0 3px rgba(100,116,139,.10)}input::placeholder{color:#94a3b8}.field-label{font-size:11px;font-weight:700;color:#475569}
.table-wrap{width:100%;overflow:auto;border:1px solid #eef2f7;border-radius:10px}.data-table{width:100%;border-collapse:collapse;background:#fff;min-width:760px}.data-table th,.data-table td{padding:11px 12px;border-bottom:1px solid #edf1f5;text-align:left;font-size:12px;vertical-align:middle}.data-table th{background:#f8fafc;color:#64748b;font-size:10px;text-transform:uppercase;letter-spacing:.055em;font-weight:800;white-space:nowrap}.data-table tr:last-child td{border-bottom:0}.data-table tbody tr:hover{background:#fbfdff}.data-table strong{font-weight:700}.data-table--compact th,.data-table--compact td{padding:9px 10px}.align-right{text-align:right!important}.mono{font-family:"Cascadia Code",Consolas,monospace;font-size:11px!important}.row-attention{background:#fffdf8}.inline-warning{display:inline-block;margin-left:8px;padding:2px 6px;border-radius:999px;background:var(--danger-bg);color:var(--danger);font-size:9px;font-weight:800}
.entity-cell{display:flex;align-items:center;gap:10px;min-width:210px}.entity-cell strong,.entity-cell span{display:block}.entity-cell div>span{margin-top:2px;color:var(--muted);font-size:10px}.entity-avatar{width:31px;height:31px;display:grid;place-items:center;border-radius:8px;background:#eef2f7;color:#334155;font-weight:800;flex:0 0 auto}.entity-avatar--project{background:#eaf0f7}
.progress-cell{display:flex;align-items:center;gap:8px;min-width:120px}.progress-track{height:6px;flex:1;overflow:hidden;background:#e9eef4;border-radius:999px}.progress-track span{display:block;height:100%;border-radius:999px;background:#475569}.progress-cell>span{font-size:10px;color:var(--muted);min-width:30px;text-align:right}
.task-list{display:grid;gap:8px}.task-row{display:grid;grid-template-columns:auto minmax(220px,1fr) auto auto 105px;gap:12px;align-items:center;padding:13px;border:1px solid #edf1f5;border-radius:10px}.task-row:hover{background:#fbfdff}.task-row--overdue{border-left:3px solid #ef4444}.task-row__check{width:30px;height:30px;display:grid;place-items:center;border-radius:8px;background:#f1f5f9;color:#64748b}.task-row__main strong,.task-row__main span{display:block}.task-row__main strong{font-size:12px}.task-row__main span{margin-top:3px;color:var(--muted);font-size:10px}.task-row__due span,.task-row__due strong{display:block;text-align:right}.task-row__due span{font-size:9px;color:var(--muted);text-transform:uppercase}.task-row__due strong{font-size:11px;margin-top:2px}
.empty-state{padding:35px 18px;text-align:center;color:var(--muted)}.empty-state__icon{width:38px;height:38px;margin:0 auto 10px;display:grid;place-items:center;border-radius:50%;background:#f1f5f9;color:#64748b;font-weight:800}.empty-state strong{display:block;color:#334155;font-size:13px}.empty-state p{max-width:460px;margin:6px auto 0;font-size:11px;line-height:1.5}.loading-panel{min-height:140px;display:flex;align-items:center;justify-content:center;gap:10px;color:var(--muted);font-size:12px}.spinner{width:17px;height:17px;border:2px solid #dbe2ea;border-top-color:#475569;border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
.welcome-card{min-height:380px;background:var(--navy-900);color:#fff;border-radius:16px;display:grid;grid-template-columns:1.25fr .75fr;overflow:hidden;padding:50px;box-shadow:var(--shadow)}.welcome-card h1{max-width:650px;margin:8px 0 14px;font-size:38px;letter-spacing:-.035em}.welcome-card p{max-width:600px;color:#cbd5e1;line-height:1.6;margin:0 0 25px}.welcome-card__visual{align-self:center;justify-self:center;width:min(290px,100%);padding:30px;border:1px solid rgba(255,255,255,.1);border-radius:14px;background:rgba(255,255,255,.04)}.visual-line{height:12px;width:60%;border-radius:5px;background:rgba(255,255,255,.12);margin:15px 0}.visual-line--wide{width:100%;height:16px}.visual-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.visual-grid span{height:70px;border-radius:8px;background:rgba(255,255,255,.08)}
.login-page{min-height:calc(100vh - 128px);display:grid;grid-template-columns:1fr 1fr;max-width:1120px;margin:20px auto;background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden;box-shadow:var(--shadow)}.login-intro{background:var(--navy-900);color:#fff;padding:50px}.login-logo{width:46px;height:46px;display:grid;place-items:center;border-radius:11px;background:#fff;color:var(--navy-900);font-size:23px;font-weight:900;margin-bottom:26px}.login-intro h1{margin:8px 0 12px;font-size:32px}.login-intro>p{margin:0 0 30px;color:#cbd5e1;line-height:1.55;font-size:13px}.login-feature{display:flex;gap:11px;margin:17px 0}.login-feature>span{width:25px;height:25px;display:grid;place-items:center;border-radius:50%;background:rgba(255,255,255,.1);font-size:11px}.login-feature strong,.login-feature small{display:block}.login-feature strong{font-size:12px}.login-feature small{margin-top:3px;color:#94a3b8;font-size:10px;line-height:1.45}.login-form-wrap{display:grid;place-items:center;padding:45px}.login-card{width:min(390px,100%);display:grid;gap:10px}.login-card__head{margin-bottom:11px}.login-card__head h2{font-size:24px;margin:6px 0}.login-card__head p{margin:0;color:var(--muted);font-size:12px}.login-submit{margin-top:7px;width:100%}.form-error{padding:9px 10px;border-radius:8px;background:var(--danger-bg);color:var(--danger);font-size:11px}.login-help{margin:4px 0 0;text-align:center;color:#94a3b8;font-size:10px}
@media(max-width:1100px){.metrics-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-grid{grid-template-columns:1fr 1fr}.panel--span-2{grid-column:span 1}.user-summary__text{display:none}.system-pill__text{display:none}.task-row{grid-template-columns:auto minmax(200px,1fr) auto auto}.task-row__due{grid-column:2/5;display:flex;gap:5px}.task-row__due span,.task-row__due strong{text-align:left}}
@media(max-width:820px){.sidebar{transform:translateX(-100%);transition:.2s ease}.menu-open .sidebar{transform:translateX(0);box-shadow:18px 0 50px rgba(15,23,42,.25)}.sidebar__close{display:block}.menu-backdrop{display:block;position:fixed;z-index:25;inset:0;border:0;background:rgba(15,23,42,.42)}.app-main{margin-left:0}.menu-button{display:block}.topbar{height:62px;padding:0 15px}.topbar__product span{display:none}.content{padding:22px 15px 45px}.page-heading{align-items:flex-start;flex-direction:column}.page-heading__actions{width:100%}.page-heading__actions .button{flex:1}.metrics-grid{grid-template-columns:1fr 1fr}.dashboard-grid{grid-template-columns:1fr}.panel--span-2{grid-column:auto}.filter-bar{align-items:stretch}.filter-select{width:calc(50% - 5px);min-width:0}.result-count{width:100%;margin-left:0}.login-page{grid-template-columns:1fr;margin:0}.login-intro{display:none}.login-form-wrap{padding:35px 20px;min-height:70vh}.welcome-card{grid-template-columns:1fr;padding:35px 25px}.welcome-card__visual{display:none}.welcome-card h1{font-size:30px}}
@media(max-width:560px){.metrics-grid{grid-template-columns:1fr}.topbar__product strong{font-size:12px}.system-pill{display:none}.content{padding-top:18px}.page-heading h1{font-size:25px}.search-box{min-width:100%;flex-wrap:wrap}.search-box input{width:100%}.search-box .button{width:100%}.search-box__icon{position:absolute;margin-top:11px}.filter-select{width:100%}.panel{padding:15px}.metric-card{padding:15px}.task-row{grid-template-columns:auto 1fr}.task-row>.status-badge{grid-column:auto}.task-row__due{grid-column:1/3}.user-summary{display:none}}

/* V1.1-A1: unauthenticated shell protection */
.public-content {
    min-height: 100vh;
}

.auth-gate {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    color: #64748b;
    background: #f8fafc;
    font-size: 14px;
}

.auth-gate__spinner {
    width: 20px;
    height: 20px;
    border: 2px solid #cbd5e1;
    border-top-color: #334155;
    border-radius: 50%;
    animation: pworks-spin .8s linear infinite;
}

@keyframes pworks-spin {
    to { transform: rotate(360deg); }
}

/* Unified V1.1 — administration */
.admin-tabs{display:flex;gap:6px;align-items:center;overflow:auto;margin:-4px 0 18px;padding-bottom:2px}.admin-tabs a{white-space:nowrap;text-decoration:none;padding:8px 11px;border:1px solid var(--line);border-radius:8px;background:#fff;color:#64748b;font-size:11px;font-weight:700}.admin-tabs a:hover{border-color:#cbd5e1;color:#334155}.admin-tabs a.active{background:var(--navy-900);border-color:var(--navy-900);color:#fff}
.admin-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.admin-card{display:grid;gap:7px;min-height:145px;padding:20px;border:1px solid var(--line);border-radius:var(--radius);background:#fff;text-decoration:none;box-shadow:0 2px 9px rgba(15,23,42,.025);transition:.15s ease}.admin-card:hover{transform:translateY(-1px);border-color:#cbd5e1;box-shadow:var(--shadow)}.admin-card__icon{font-size:24px}.admin-card strong{font-size:14px}.admin-card small{font-size:11px;color:var(--muted);line-height:1.5}.admin-metrics{margin-bottom:16px}
.admin-form-panel{margin-bottom:16px}.form-grid{display:grid;gap:13px}.form-grid--2{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid--1{grid-template-columns:1fr}.form-grid label{display:grid;gap:6px}.form-span-2{grid-column:span 2}.form-actions{display:flex;justify-content:flex-end;align-items:center;gap:9px;margin-top:16px}.form-success{padding:10px 12px;margin-bottom:14px;border-radius:8px;background:var(--success-bg);color:var(--success);font-size:11px;font-weight:700}.admin-message{margin-bottom:14px}.info-strip{padding:11px 12px;border:1px solid #dbeafe;border-radius:8px;background:#f8fbff;color:#475569;font-size:11px;line-height:1.5}.admin-divider{height:1px;background:var(--line);margin:20px 0}.muted-small{margin-right:auto;font-size:10px;color:var(--muted)}
.role-chip-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:8px}.check-card{display:flex!important;grid-template-columns:none!important;flex-direction:row!important;align-items:flex-start;gap:9px!important;padding:10px;border:1px solid var(--line);border-radius:9px;background:#fff;cursor:pointer}.check-card:hover{background:#fafcff}.check-card input{width:16px;height:16px;min-height:0;margin-top:2px;flex:0 0 auto}.check-card span{display:block}.check-card strong,.check-card small{display:block}.check-card strong{font-size:11px}.check-card small{margin-top:3px;color:var(--muted);font-size:10px}.toggle-line{display:flex!important;flex-direction:row!important;align-items:flex-start;gap:10px!important;padding:11px;border:1px solid var(--line);border-radius:9px}.toggle-line input{width:17px;height:17px;min-height:0;margin-top:1px}.toggle-line strong,.toggle-line small{display:block}.toggle-line strong{font-size:11px}.toggle-line small{margin-top:3px;color:var(--muted);font-size:10px}.inline-form{display:flex;gap:8px;max-width:700px}.inline-form input{flex:1}.row-selected{background:#f8fbff!important}.tag-list{display:flex;flex-wrap:wrap;gap:5px}.tag{display:inline-flex;padding:3px 7px;border-radius:999px;background:#f1f5f9;color:#475569;font-size:9px;font-weight:700}
.admin-split{display:grid;grid-template-columns:minmax(300px,.8fr) minmax(0,1.6fr);gap:16px}.role-list{display:grid;gap:7px}.role-list__item{width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px;border:1px solid var(--line);border-radius:9px;background:#fff;text-align:left;cursor:pointer}.role-list__item:hover{background:#fafcff}.role-list__item.active{border-color:#94a3b8;background:#f8fafc}.role-list__item strong,.role-list__item small{display:block}.role-list__item strong{font-size:11px}.role-list__item small{margin-top:3px;color:var(--muted);font-size:9px}
.permission-section{display:grid;gap:10px;margin-top:15px}.permission-section h3,.permission-group h3{margin:0;font-size:13px}.permission-section p{margin:3px 0 0;color:var(--muted);font-size:10px}.permission-picker,.permission-readonly{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:14px}.permission-group{border:1px solid var(--line);border-radius:9px;padding:12px;background:#fbfcfe}.permission-group__head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:7px}.text-link-button{border:0;background:transparent;cursor:pointer;padding:0}.permission-option,.permission-line{display:flex!important;flex-direction:row!important;gap:9px!important;align-items:flex-start;padding:8px 0;border-top:1px solid #eef2f7}.permission-option:first-of-type,.permission-line:first-of-type{border-top:0}.permission-option input{width:16px;height:16px;min-height:0;margin-top:2px}.permission-option span,.permission-line div{min-width:0}.permission-option strong,.permission-option small,.permission-option code,.permission-line strong,.permission-line small{display:block}.permission-option strong,.permission-line strong{font-size:10px}.permission-option small,.permission-line small{margin-top:2px;color:var(--muted);font-size:9px;line-height:1.4}.permission-option code{margin-top:4px;color:#94a3b8;font-size:8px}.permission-line>span{width:16px;color:#94a3b8;font-weight:900}.permission-line--enabled>span{color:var(--success)}
.button-danger-outline{background:#fff;color:var(--danger);border-color:#fecaca}.button-danger-outline:hover{background:var(--danger-bg)}
.reference-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.reference-values{display:grid}.reference-values>div{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 0;border-top:1px solid #f1f5f9}.reference-values>div:first-child{border-top:0}.reference-values span{font-size:11px}.reference-values code{font-size:9px;color:#64748b}.system-details{display:grid}.system-details>div{display:flex;justify-content:space-between;gap:16px;padding:10px 0;border-bottom:1px solid #f1f5f9}.system-details>div:last-child{border-bottom:0}.system-details span{font-size:11px;color:var(--muted)}.system-details strong{font-size:11px;text-align:right}
@media(max-width:1050px){.admin-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-split{grid-template-columns:1fr}.permission-picker,.permission-readonly{grid-template-columns:1fr}.reference-grid{grid-template-columns:1fr}}
@media(max-width:700px){.admin-card-grid{grid-template-columns:1fr}.form-grid--2{grid-template-columns:1fr}.form-span-2{grid-column:auto}.role-chip-grid{grid-template-columns:1fr}.inline-form{flex-direction:column}.admin-tabs{margin-left:-2px;margin-right:-2px}.form-actions{flex-wrap:wrap}.form-actions .button{flex:1}.muted-small{width:100%;margin:0}.reference-card{padding:14px}}

/* Unified V1.2 — clients and projects */
.entity-form-panel{margin-bottom:16px}.entity-heading{align-items:center}.breadcrumb-line{display:flex;align-items:center;gap:7px;margin:-4px 0 14px;color:var(--muted);font-size:11px}.breadcrumb-line a{font-weight:700;text-decoration:none;color:#475569}.breadcrumb-line a:hover{color:#111827}.entity-link{font-weight:700;text-decoration:none;color:#1f2937}.entity-link:hover,.subtle-link:hover{text-decoration:underline}.subtle-link{color:#475569;text-decoration:none}.count-badge{display:inline-grid;place-items:center;min-width:26px;height:24px;padding:0 7px;border-radius:999px;background:#f1f5f9;color:#475569;font-size:10px;font-weight:800}.stacked-cell strong,.stacked-cell span{display:block}.stacked-cell strong{font-size:11px}.stacked-cell span{margin-top:3px;color:var(--muted);font-size:9px}.entity-summary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-bottom:16px}.detail-list{display:grid}.detail-list>div{display:grid;grid-template-columns:minmax(120px,.75fr) minmax(0,1.25fr);gap:16px;padding:10px 0;border-bottom:1px solid #f1f5f9}.detail-list>div:last-child{border-bottom:0}.detail-list span{color:var(--muted);font-size:11px}.detail-list strong{font-size:11px;text-align:right;overflow-wrap:anywhere}.entity-note{margin:0;white-space:pre-wrap;font-size:12px;line-height:1.65;color:#475569}.compact-list__row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:11px 0;border-bottom:1px solid #f1f5f9;text-decoration:none}.compact-list__row:last-child{border-bottom:0}.compact-list__row:hover strong{text-decoration:underline}.compact-list__row strong,.compact-list__row span{display:block}.compact-list__row strong{font-size:12px}.compact-list__row div>span{margin-top:3px;color:var(--muted);font-size:10px}.timeline-list{display:grid}.timeline-item{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid #f1f5f9}.timeline-item:last-child{border-bottom:0}.timeline-dot{width:8px;height:8px;border-radius:50%;background:#94a3b8}.timeline-item strong,.timeline-item small{display:block}.timeline-item strong{font-size:11px}.timeline-item small{margin-top:3px;color:var(--muted);font-size:9px}.timeline-item time{color:var(--muted);font-size:9px;white-space:nowrap}.muted-block{padding:14px 0;color:var(--muted);font-size:11px}.danger-zone{margin-top:16px}.confirm-box{padding:12px;border:1px solid #fecaca;border-radius:9px;background:#fffafa}.confirm-box p{margin:0 0 10px;color:#7f1d1d;font-size:11px;line-height:1.5}.confirm-box>div{display:flex;gap:8px}.object-metrics{margin-top:-5px}.object-module-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.object-module{min-height:105px;display:grid;align-content:start;gap:5px;padding:14px;border:1px solid var(--line);border-radius:10px;background:#fafbfc;color:#94a3b8;text-decoration:none}.object-module span{font-size:18px}.object-module strong{font-size:12px;color:#64748b}.object-module small{font-size:9px;line-height:1.4}.object-module--active{background:#fff;color:#334155;cursor:pointer}.object-module--active strong{color:#1f2937}.object-module--active:hover{border-color:#cbd5e1;background:#fbfdff}.inline-create{display:grid;grid-template-columns:minmax(0,1fr) 90px auto;gap:8px;margin:0 0 12px}.small-number{max-width:90px}.stage-list{display:grid}.stage-row{display:flex;align-items:center;gap:11px;padding:10px 0;border-bottom:1px solid #f1f5f9}.stage-row:last-child{border-bottom:0}.stage-order{display:grid;place-items:center;width:30px;height:30px;border-radius:8px;background:#f1f5f9;color:#475569;font-size:10px;font-weight:800}.stage-row strong,.stage-row small{display:block}.stage-row strong{font-size:11px}.stage-row small{margin-top:3px;color:var(--muted);font-size:9px}
@media(max-width:950px){.entity-summary-grid{grid-template-columns:1fr}.object-module-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.object-module-grid{grid-template-columns:1fr}.detail-list>div{grid-template-columns:1fr;gap:4px}.detail-list strong{text-align:left}.timeline-item{grid-template-columns:auto 1fr}.timeline-item time{grid-column:2}.inline-create{grid-template-columns:1fr}.small-number{max-width:none}}

/* Unified V1.3 — work catalog and pricing */
.pricing-table .catalog-code{display:inline-flex;padding:3px 6px;border-radius:6px;background:#f1f5f9;color:#334155;font-size:9px;font-weight:800}.pricing-summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:16px}.price-card{display:grid;gap:5px;padding:16px;border:1px solid var(--line);border-radius:11px;background:#fff}.price-card span{color:var(--muted);font-size:10px;font-weight:700}.price-card strong{font-size:20px;line-height:1.1}.price-card small{color:var(--muted);font-size:9px}.price-card--accent{border-color:#cbd5e1;background:#fbfdff}.pricing-source-mini{display:flex;align-items:baseline;gap:8px;padding:16px 0}.pricing-source-mini strong{font-size:28px}.pricing-source-mini span{color:var(--muted);font-size:11px}.pricing-source-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.pricing-source-card{padding:14px;border:1px solid var(--line);border-radius:10px;background:#fff}.pricing-source-card--inactive{opacity:.68;background:#fafafa}.pricing-source-card__top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.pricing-source-card__top strong,.pricing-source-card__top span{display:block}.pricing-source-card__top strong{font-size:12px}.pricing-source-card__top div>span{margin-top:3px;color:var(--muted);font-size:9px}.pricing-source-card dl{display:grid;gap:7px;margin:12px 0 0}.pricing-source-card dl>div{display:flex;justify-content:space-between;gap:10px}.pricing-source-card dt,.pricing-source-card dd{margin:0;font-size:10px}.pricing-source-card dt{color:var(--muted)}.pricing-source-card dd{font-weight:700;text-align:right}.pricing-source-card p{margin:12px 0 0;padding-top:10px;border-top:1px solid #f1f5f9;color:#64748b;font-size:10px;line-height:1.5}
@media(max-width:900px){.pricing-summary-grid{grid-template-columns:1fr}.pricing-source-grid{grid-template-columns:1fr}}
.pricing-source-card__actions{display:flex;justify-content:flex-end;margin-top:12px;padding-top:10px;border-top:1px solid #f1f5f9}


/* Unified V1.4 — site visits */
.compact-form { margin-top: 14px; }
.assessment-total { display:flex; flex-wrap:wrap; gap:18px; justify-content:flex-end; padding:16px 4px 2px; border-top:1px solid var(--border, #e5e7eb); }
.assessment-total span:last-child { font-size:1.05rem; }
.checkbox-line { display:flex; align-items:center; gap:10px; padding-top:26px; }
.checkbox-line input { width:auto; }

/* V1.5 — object layout */
.layout-builder-tabs{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}.compact-form{margin-bottom:1rem}.layout-tree{display:grid;gap:1rem}.layout-floor-card{border:1px solid var(--border,#dfe4ea);border-radius:14px;padding:1rem;background:var(--surface,#fff)}.layout-floor-card>header{display:flex;justify-content:space-between;gap:1rem;align-items:center;padding-bottom:.8rem;border-bottom:1px solid var(--border,#e7ebef)}.layout-floor-card header div,.layout-room-head div:first-child,.layout-surface-row>div:first-child{display:flex;flex-direction:column;gap:.2rem}.layout-floor-card small,.layout-room-card small,.layout-surface-row small{color:var(--muted,#6b7280)}.layout-room-card{margin-top:.9rem;padding:.9rem;border-radius:12px;background:var(--surface-soft,#f7f9fb)}.layout-room-head{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start}.layout-room-metrics{display:flex;gap:.45rem;flex-wrap:wrap;justify-content:flex-end}.layout-room-metrics span,.layout-tags span{font-size:.78rem;padding:.25rem .5rem;border-radius:999px;background:#eef3f7;color:#425466}.layout-surface-list{display:grid;gap:.55rem;margin-top:.8rem}.layout-surface-row{display:grid;grid-template-columns:minmax(140px,1fr) minmax(250px,1.5fr);gap:.7rem;padding:.7rem;border:1px solid #e5e9ee;border-radius:10px;background:#fff}.layout-area-values{display:flex;gap:.6rem;justify-content:flex-end;align-items:center;flex-wrap:wrap;font-size:.82rem}.layout-tags{grid-column:1/-1;display:flex;gap:.35rem;flex-wrap:wrap}.empty-action{display:flex;justify-content:center;margin-top:1rem}@media(max-width:800px){.layout-room-head,.layout-floor-card>header{flex-direction:column}.layout-room-metrics{justify-content:flex-start}.layout-surface-row{grid-template-columns:1fr}.layout-area-values{justify-content:flex-start}}

/* V1.6 — work orders */
.details-grid{display:grid;gap:16px;margin-bottom:16px}.details-grid--2{grid-template-columns:repeat(2,minmax(0,1fr))}.details-grid--3{grid-template-columns:repeat(3,minmax(0,1fr))}.summary-card{display:grid;gap:6px}.summary-card strong{font-size:14px}.summary-card>span:last-child{color:var(--muted);font-size:10px}.inline-editor{margin:12px 0;padding:14px;border:1px solid var(--line);border-radius:10px;background:#fbfcfe}.work-item-editor{margin-bottom:16px}.money-summary{display:grid}.money-summary>div{display:flex;justify-content:space-between;gap:20px;padding:9px 0;border-bottom:1px solid #f1f5f9;font-size:11px}.money-summary__total{padding-top:14px!important;border-bottom:0!important;font-size:14px!important}.money-summary__total strong{font-size:16px}.timeline-list .timeline-item{display:block}.timeline-list .timeline-item>strong,.timeline-list .timeline-item>span{display:block}.timeline-list .timeline-item>span{margin-top:3px;color:var(--muted);font-size:9px}.timeline-list .timeline-item>p{margin:6px 0 0;font-size:10px;color:#475569}.row-attention{background:#fffaf5}.inline-warning{display:inline-block;margin-left:6px;color:#b45309;font-size:9px;font-weight:800}
@media(max-width:850px){.details-grid--2,.details-grid--3{grid-template-columns:1fr}}

/* Unified V1.7 — tasks and calendar */
.task-row{text-decoration:none;color:inherit}.status-action-row{display:flex;gap:8px;flex-wrap:wrap}.status-comment{display:block;max-width:620px;margin-top:14px}.text-danger{color:var(--danger)!important}.form-actions__spacer{flex:1}.check-line{display:flex!important;align-items:center;gap:9px;min-height:38px}.check-line input{width:auto;min-height:auto}.calendar-toolbar-panel{margin-bottom:16px;padding:14px 18px}.calendar-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px}.calendar-nav,.calendar-controls,.view-switch{display:flex;align-items:center;gap:8px}.calendar-period{margin-left:4px;font-size:14px;text-transform:capitalize}.calendar-panel{padding:0;overflow:hidden}.calendar-weekdays{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));background:#f8fafc;border-bottom:1px solid var(--line)}.calendar-weekdays>div{padding:9px 10px;text-align:center;color:var(--muted);font-size:10px;font-weight:800;text-transform:uppercase}.calendar-month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.calendar-day{min-height:126px;padding:8px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:#fff}.calendar-day:nth-child(7n){border-right:0}.calendar-day--muted{background:#fafbfc}.calendar-day--muted .calendar-day__number{color:#cbd5e1}.calendar-day--today{box-shadow:inset 0 0 0 2px #94a3b8}.calendar-day__number{font-size:11px;font-weight:800;color:#475569;margin-bottom:7px}.calendar-day__events{display:grid;gap:4px}.calendar-event{width:100%;border:0;border-left:3px solid #94a3b8;border-radius:5px;background:#f8fafc;padding:4px 5px;text-align:left;color:#334155;font-size:9px;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}.calendar-event span{margin-right:4px;color:#64748b;font-weight:800}.calendar-event--task{border-left-color:#3b82f6;background:#eff6ff}.calendar-event--danger{border-left-color:#ef4444;background:#fef2f2}.calendar-event--work{border-left-color:#8b5cf6;background:#f5f3ff}.calendar-event--visit{border-left-color:#06b6d4;background:#ecfeff}.calendar-event--deadline{border-left-color:#f59e0b;background:#fffbeb}.calendar-event--manual{border-left-color:#10b981;background:#ecfdf5}.calendar-event--project{border-left-color:#64748b}.calendar-more{font-size:8px;color:var(--muted);padding-left:5px}.calendar-agenda{display:grid}.agenda-day{display:grid;grid-template-columns:90px minmax(0,1fr);gap:16px;padding:12px 0;border-bottom:1px solid #f1f5f9}.agenda-day:last-child{border-bottom:0}.agenda-day__date strong,.agenda-day__date span{display:block}.agenda-day__date strong{font-size:15px}.agenda-day__date span{margin-top:3px;color:var(--muted);font-size:10px;text-transform:capitalize}.agenda-day__items{display:grid;gap:6px}.agenda-event{display:grid;grid-template-columns:64px 8px minmax(0,1fr) auto;gap:9px;align-items:center;width:100%;padding:9px;border:1px solid #edf1f5;border-radius:8px;background:#fff;text-align:left;color:inherit;cursor:pointer}.agenda-event:hover{background:#fbfdff}.agenda-event__time{font-size:10px;color:#64748b;font-weight:700}.agenda-event__dot{width:8px;height:8px;border-radius:50%;border-left:0;background:#94a3b8}.agenda-event__dot.calendar-event--task{background:#3b82f6}.agenda-event__dot.calendar-event--danger{background:#ef4444}.agenda-event__dot.calendar-event--work{background:#8b5cf6}.agenda-event__dot.calendar-event--visit{background:#06b6d4}.agenda-event__dot.calendar-event--deadline{background:#f59e0b}.agenda-event__dot.calendar-event--manual{background:#10b981}.agenda-event__main strong,.agenda-event__main small{display:block}.agenda-event__main strong{font-size:11px}.agenda-event__main small{margin-top:3px;color:var(--muted);font-size:9px}
@media(max-width:900px){.calendar-toolbar{align-items:stretch;flex-direction:column}.calendar-controls{justify-content:space-between;flex-wrap:wrap}.calendar-month-grid,.calendar-weekdays{min-width:760px}.calendar-panel{overflow:auto}.agenda-day{grid-template-columns:1fr}.agenda-event{grid-template-columns:54px 8px minmax(0,1fr)}.agenda-event>.status-badge{grid-column:3}.form-actions__spacer{display:none}}
@media(max-width:600px){.calendar-nav{flex-wrap:wrap}.calendar-period{width:100%;margin-left:0}.calendar-controls,.view-switch{width:100%}.view-switch .button{flex:1}.agenda-event{grid-template-columns:50px 8px minmax(0,1fr)}}

/* V1.8 Collaboration */
.collaboration-compose { align-items: stretch; grid-template-columns: 160px minmax(260px, 1fr) 220px auto; margin-bottom: 18px; }
.collaboration-compose textarea { min-width: 0; }
.collaboration-list { display: grid; gap: 12px; }
.collaboration-entry { border: 1px solid var(--line); border-radius: 14px; padding: 14px; background: var(--surface); }
.collaboration-entry--pinned { box-shadow: inset 3px 0 0 var(--blue-600); }
.collaboration-entry__head { display: flex; justify-content: space-between; gap: 12px; margin-bottom: 8px; }
.collaboration-entry__head > div { display: grid; gap: 2px; }
.collaboration-entry__head span, .collaboration-entry small { color: var(--muted); font-size: 12px; }
.participant-picker { display: grid; gap: 8px; margin: 16px 0; max-height: 220px; overflow: auto; }
.participant-picker label, .toggle-row { display: flex; align-items: center; gap: 8px; }
.discussion-layout { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 18px; align-items: start; }
.discussion-chat { min-height: 520px; display: flex; flex-direction: column; }
.discussion-messages { display: grid; gap: 12px; flex: 1; max-height: 65vh; overflow: auto; padding-right: 4px; }
.discussion-message { max-width: 82%; border: 1px solid var(--line); border-radius: 14px; padding: 12px 14px; background: var(--surface); }
.discussion-message--own { margin-left: auto; background: var(--surface-soft); }
.discussion-message > div { display: flex; gap: 8px; align-items: baseline; flex-wrap: wrap; }
.discussion-message time, .discussion-message small { color: var(--muted); font-size: 12px; }
.discussion-message p { white-space: pre-wrap; margin: 8px 0 0; }
.discussion-compose { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px; margin-top: 16px; }
.discussion-sidebar { position: sticky; top: 82px; }
.participant-list { display: grid; gap: 8px; margin-bottom: 14px; }
.participant-row { display: flex; justify-content: space-between; gap: 8px; align-items: center; padding: 8px 0; border-bottom: 1px solid var(--line); }
.participant-row > div { display: grid; gap: 2px; }
.participant-row small { color: var(--muted); }
.notification-link { position: relative; text-decoration: none; }
.notification-count { min-width: 20px; height: 20px; padding: 0 5px; border-radius: 999px; display: inline-grid; place-items: center; background: var(--blue-600); color: white; font-size: 11px; }
.notification-list { display: grid; }
.notification-row { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 12px; padding: 14px 4px; border-bottom: 1px solid var(--line); cursor: pointer; }
.notification-row--unread { background: var(--surface-soft); }
.notification-row p { margin: 4px 0; color: var(--muted); }
.notification-row small { color: var(--muted); }
.notification-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--line-strong); margin-top: 7px; }
.notification-row--unread .notification-dot { background: var(--blue-600); }

@media (max-width: 900px) {
  .discussion-layout { grid-template-columns: 1fr; }
  .discussion-sidebar { position: static; }
  .collaboration-compose { grid-template-columns: 1fr; }
  .discussion-message { max-width: 94%; }
}

/* Unified V1.10 — documents, photos and photo reports */
.file-upload-row{display:grid;grid-template-columns:minmax(220px,1fr) minmax(260px,1.4fr) auto;gap:10px;align-items:center;margin-bottom:16px}.photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px}.photo-card{overflow:hidden;border:1px solid var(--line);border-radius:14px;background:var(--surface);display:flex;flex-direction:column;min-height:300px}.photo-preview,.photo-placeholder{width:100%;aspect-ratio:4/3;object-fit:cover;background:#f4f7fa;border:0}.photo-placeholder{display:grid;place-items:center;align-content:center;gap:8px;color:var(--muted);cursor:pointer}.photo-placeholder span{font-size:38px}.photo-card__body{display:grid;gap:7px;padding:13px}.photo-card__body strong{font-size:12px;word-break:break-word}.photo-card__body small{color:var(--muted);font-size:10px}.photo-card__body p{margin:0;min-height:34px;font-size:10px;color:#475569}.photo-card__actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:auto}.checkbox-field{display:flex!important;align-items:center;gap:9px;padding-top:25px}.checkbox-field input{width:auto;min-height:auto}.timeline-item>.button{margin-left:auto}.data-table td small{display:block;margin-top:3px;color:var(--muted);font-size:9px}
@media(max-width:760px){.file-upload-row{grid-template-columns:1fr}.checkbox-field{padding-top:0}.photo-grid{grid-template-columns:1fr}}

/* V1.11 quality */
.checklist-list,.quality-defect-list{display:grid;gap:12px}.checklist-row{border:1px solid var(--border,#dde3ea);border-radius:12px;padding:14px;background:var(--surface,#fff)}.checklist-row__title{display:flex;align-items:center;gap:10px;margin-bottom:10px}.checklist-row__controls{display:grid;grid-template-columns:minmax(140px,.7fr) minmax(180px,1.2fr) minmax(180px,1fr) auto;gap:8px;align-items:center}.quality-defect-card{margin:0}.detail-list.compact{grid-template-columns:repeat(3,minmax(0,1fr))}@media(max-width:900px){.checklist-row__controls,.detail-list.compact{grid-template-columns:1fr}}

/* V1.17 audit detail */
.audit-json{max-width:520px;max-height:220px;overflow:auto;white-space:pre-wrap;word-break:break-word;font-size:.78rem;background:var(--surface-muted,#f6f7f8);padding:.65rem;border-radius:.5rem;margin:.5rem 0 0}
