*{box-sizing:border-box}
:root{--bg:#050505;--panel:#0b0b0b;--line:#282828;--text:#f7f7f7;--muted:#9a9a9a;--soft:#d7d7d7}
body{margin:0;background:var(--bg);color:var(--text);font-family:Arial,Helvetica,sans-serif}a{color:#fff}.landing,.login-page{min-height:100vh;display:grid;place-items:center;background:#000}.hero{text-align:center;padding:40px 24px}.hero h1,.login-panel h1{font-size:clamp(3.5rem,10vw,8rem);font-weight:300;letter-spacing:.14em;text-transform:uppercase;margin:0}.landing-subtitle{font-size:clamp(1.7rem,3.2vw,3rem);letter-spacing:.06em;color:#f2f2f2;margin:26px 0 0}.mission{color:#aaa;font-size:1.1rem;line-height:1.7;margin:42px 0}.mission-line{font-size:clamp(.95rem,1.4vw,1.25rem);letter-spacing:.03em}.mission-line span{color:#e9e9e9;margin:0 .55rem}.login-big,.btn{display:inline-block;border:2px solid #fff;border-radius:10px;padding:16px 46px;text-decoration:none;background:transparent;color:#fff;font-size:1.1rem;cursor:pointer}.login-big{margin-top:10px;font-size:1.25rem;letter-spacing:.12em;text-transform:uppercase}.login-big:hover,.btn.primary,.btn:hover{background:#fff;color:#000}.login-panel{width:min(430px,92vw);padding:40px;border:1px solid #333;background:#0b0b0b;text-align:center;border-radius:18px}.login-panel h1{font-size:2.4rem}.login-panel p{font-size:1.05rem;color:#bbb}.login-panel input,.form-card input,.form-card select,.form-card textarea,.board-tools input{width:100%;padding:15px;margin:10px 0 22px;background:#111;color:#fff;border:1px solid #444;border-radius:8px}.login-panel button{width:100%}.alert{padding:12px;border:1px solid #933;background:#260b0b;color:#ffd1d1;border-radius:8px;margin:20px 0}.subtle-link{display:block;margin-top:24px;color:#aaa;text-decoration:none}
.topbar{position:sticky;top:0;z-index:5;display:flex;align-items:center;gap:28px;padding:14px 24px;background:#050505;border-bottom:1px solid #252525}.brand{text-decoration:none;white-space:nowrap}.brand span{display:block;text-transform:uppercase;letter-spacing:.13em;font-size:1rem}.brand b{font-weight:400;color:#888}.topbar nav{display:flex;gap:18px;flex:1}.topbar nav a{text-decoration:none;color:#ddd}.topbar nav a:hover{color:#fff}.who{color:#999;white-space:nowrap}.wrap{max-width:1800px;margin:0 auto;padding:28px 22px}.hello{text-align:center;margin:28px auto 34px}.hello h1{font-size:clamp(2rem,5vw,4rem);font-weight:300}.hello p,.muted{color:#999}.current{margin:20px auto;border:1px solid #303030;border-radius:18px;padding:26px;max-width:520px;display:grid;gap:8px}.current strong{font-size:2rem}.dot,.status-dot{width:16px;height:16px;border-radius:50%;display:inline-block;background:var(--accent,#777)}.dot.in,.person-line.in{--accent:#27d163}.dot.away,.person-line.away{--accent:#f3c84b}.dot.remote,.person-line.remote{--accent:#4ba3ff}.dot.customer,.person-line.customer{--accent:#f4a742}.dot.lunch,.person-line.lunch{--accent:#ff9f43}.dot.out,.person-line.out{--accent:#ff4b4b}.dot.off,.person-line.off{--accent:#888}.dot{margin:auto}.quick{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px;margin:25px 0}.quick button,.quick-more{background:#111;color:#fff;border:1px solid #333;border-radius:14px;padding:22px;font-size:1.05rem;text-align:center;text-decoration:none;cursor:pointer}.quick button:hover,.quick-more:hover{border-color:#fff}.instrument{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:12px;margin:38px 0}.instrument div{border:1px solid #2a2a2a;border-radius:14px;padding:20px;background:#0c0c0c}.instrument b{font-size:2rem;display:block}.instrument span{color:#aaa}.center{text-align:center}.board-head{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:14px}.board-head h1{margin:0;font-weight:300;letter-spacing:.04em}.board-head p{margin:.25rem 0 0;color:#999}.board-tools{width:min(520px,100%)}.board-tools input{margin:0;padding:12px 14px}.compact-summary{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 12px}.compact-summary span{border:1px solid #2a2a2a;background:#0b0b0b;border-radius:999px;padding:6px 10px;color:#bbb;font-size:.82rem}.compact-summary b{color:#fff;margin-right:3px}.board-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(680px,1fr));gap:6px 12px}.person-line{min-height:34px;display:grid;grid-template-columns:minmax(175px,1.4fr) minmax(110px,.9fr) 72px minmax(115px,.75fr) minmax(110px,.75fr) 86px;align-items:center;gap:10px;border:1px solid #202020;border-left:5px solid var(--accent,#777);background:#0b0b0b;border-radius:8px;padding:5px 10px;font-size:.88rem;line-height:1.1;white-space:nowrap;overflow:hidden}.person-line>div{overflow:hidden;text-overflow:ellipsis}.line-name{display:flex;align-items:center;gap:8px}.status-dot{width:10px;height:10px;flex:0 0 auto}.line-name strong{font-size:.94rem;font-weight:700}.line-dept,.line-shift,.line-updated{color:#aaa}.line-status{font-weight:700}.line-location{font-size:1rem;color:#fff}.form-card{max-width:650px;border:1px solid #333;border-radius:16px;padding:24px;background:#0b0b0b}.form-card label{display:block;color:#aaa}.table{width:100%;border-collapse:collapse;background:#0b0b0b}.table th,.table td{border-bottom:1px solid #2a2a2a;padding:12px;text-align:left}.footer{border-top:1px solid #252525;padding:18px 28px;display:flex;gap:20px;justify-content:center;flex-wrap:wrap;color:#8d8d8d;font-size:.8rem}
@media(max-width:900px){.topbar{display:block}.topbar nav{margin-top:15px;flex-wrap:wrap}.who{margin-top:10px}.board-head{display:block}.board-tools{margin-top:14px}.board-list{grid-template-columns:1fr}.person-line{grid-template-columns:minmax(150px,1.4fr) 90px 90px;white-space:normal}.line-dept,.line-shift,.line-updated{display:none}.hero h1{letter-spacing:.06em}.mission-line span{display:none}.mission-line{max-width:360px;margin-left:auto;margin-right:auto}}
@media(min-width:1500px){.wrap{padding:22px}.person-line{min-height:31px;font-size:.82rem;padding:4px 9px}.line-name strong{font-size:.88rem}.board-list{gap:5px 10px}.compact-summary{margin-bottom:10px}.compact-summary span{font-size:.78rem;padding:5px 9px}}


/* v1.1 spreadsheet-style board */
.board-table-wrap{width:100%;overflow-x:auto;border:1px solid #202020;border-radius:10px;background:#080808}
.board-table{width:100%;border-collapse:collapse;table-layout:fixed;font-size:.84rem;line-height:1.05}
.board-table th{position:sticky;top:0;background:#111;color:#aaa;text-transform:uppercase;letter-spacing:.06em;font-size:.68rem;font-weight:700;border-bottom:1px solid #303030;padding:7px 9px;text-align:left;white-space:nowrap}
.board-table td{border-bottom:1px solid #1c1c1c;padding:5px 9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;height:28px;vertical-align:middle}
.board-table tbody tr{border-left:5px solid var(--accent,#777)}
.board-table tbody tr:hover{background:#121212}
.board-row.in{--accent:#27d163}.board-row.away{--accent:#f3c84b}.board-row.remote{--accent:#4ba3ff}.board-row.customer{--accent:#f4a742}.board-row.lunch{--accent:#ff9f43}.board-row.out{--accent:#ff4b4b}.board-row.off{--accent:#888}
.name-cell{display:flex;align-items:center;gap:8px}.name-cell strong{font-size:.88rem}.status-cell{font-weight:700}.location-cell{font-weight:700;color:#fff}.board-table th:nth-child(1),.board-table td:nth-child(1){width:15%}.board-table th:nth-child(2),.board-table td:nth-child(2){width:18%}.board-table th:nth-child(3),.board-table td:nth-child(3){width:7%}.board-table th:nth-child(4),.board-table td:nth-child(4){width:12%}.board-table th:nth-child(5),.board-table td:nth-child(5){width:12%}.board-table th:nth-child(6),.board-table td:nth-child(6){width:8%}.board-table th:nth-child(7),.board-table td:nth-child(7){width:10%}.board-table th:nth-child(8),.board-table td:nth-child(8){width:18%}
@media(min-width:1500px){.board-table{font-size:.78rem}.board-table td{height:24px;padding:4px 8px}.board-table th{padding:6px 8px;font-size:.64rem}.name-cell strong{font-size:.82rem}}
@media(max-width:900px){.board-table{min-width:980px}.board-table-wrap{border-radius:8px}}


/* v1.2 status board: true spreadsheet/table format */
.spreadsheet-head{margin-bottom:12px}
.spreadsheet-board{width:100%}
.board-table-wrap{width:100%;overflow-x:hidden;border:1px solid #202020;border-radius:10px;background:#070707}
.board-table{width:100%;border-collapse:collapse;table-layout:fixed;font-size:.78rem;line-height:1}
.board-table th{position:sticky;top:0;background:#111;color:#aaa;text-transform:uppercase;letter-spacing:.06em;font-size:.62rem;font-weight:700;border-bottom:1px solid #303030;padding:6px 8px;text-align:left;white-space:nowrap}
.board-table td{border-bottom:1px solid #1b1b1b;padding:4px 8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;height:24px;vertical-align:middle}
.board-table tbody tr{border-left:5px solid var(--accent,#777)}
.board-table tbody tr:nth-child(even){background:#0a0a0a}
.board-table tbody tr:hover{background:#151515}
.board-row.in{--accent:#27d163}.board-row.away{--accent:#f3c84b}.board-row.remote{--accent:#4ba3ff}.board-row.customer{--accent:#f4a742}.board-row.lunch{--accent:#ff9f43}.board-row.out{--accent:#ff4b4b}.board-row.off{--accent:#888}.board-row.neutral{--accent:#777}
.name-cell{display:flex;align-items:center;gap:7px}.status-dot{width:9px;height:9px;border-radius:50%;display:inline-block;background:var(--accent,#777);flex:0 0 auto}.name-cell strong{font-size:.82rem}.status-cell{font-weight:700}.location-cell{font-weight:700;color:#fff}
.board-table th:nth-child(1),.board-table td:nth-child(1){width:17%}.board-table th:nth-child(2),.board-table td:nth-child(2){width:17%}.board-table th:nth-child(3),.board-table td:nth-child(3){width:7%}.board-table th:nth-child(4),.board-table td:nth-child(4){width:12%}.board-table th:nth-child(5),.board-table td:nth-child(5){width:11%}.board-table th:nth-child(6),.board-table td:nth-child(6){width:8%}.board-table th:nth-child(7),.board-table td:nth-child(7){width:10%}.board-table th:nth-child(8),.board-table td:nth-child(8){width:18%}
@media(min-width:1600px){.board-table{font-size:.74rem}.board-table td{height:22px;padding:3px 7px}.board-table th{padding:5px 7px;font-size:.58rem}.name-cell strong{font-size:.78rem}.wrap{max-width:1900px}}
@media(max-width:900px){.board-table-wrap{overflow-x:auto}.board-table{min-width:980px}.board-table td{height:28px}.board-head{display:block}.board-tools{margin-top:14px}}

/* v1.2.1 Status Board table-width tuning
   Goal: one-line rows, full employee names visible, board optimized for large-screen use. */
.board-table-wrap{
    overflow-x:hidden;
}

.board-table{
    table-layout:auto;
    width:100%;
    font-size:.78rem;
}

.board-table td{
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
}

.board-table th:nth-child(1),
.board-table td:nth-child(1){
    width:260px;
    min-width:240px;
}

.board-table th:nth-child(2),
.board-table td:nth-child(2){
    width:160px;
    min-width:130px;
}

.board-table th:nth-child(3),
.board-table td:nth-child(3){
    width:70px;
    min-width:55px;
}

.board-table th:nth-child(4),
.board-table td:nth-child(4){
    width:140px;
    min-width:115px;
}

.board-table th:nth-child(5),
.board-table td:nth-child(5){
    width:110px;
    min-width:90px;
}

.board-table th:nth-child(6),
.board-table td:nth-child(6){
    width:90px;
    min-width:75px;
}

.board-table th:nth-child(7),
.board-table td:nth-child(7){
    width:100px;
    min-width:85px;
}

.board-table th:nth-child(8),
.board-table td:nth-child(8){
    width:auto;
}

.name-cell{
    overflow:visible;
    min-width:0;
}

.name-cell strong{
    white-space:nowrap;
    overflow:visible;
    text-overflow:clip;
}

@media(min-width:1600px){
    .board-table th:nth-child(1),
    .board-table td:nth-child(1){
        width:280px;
        min-width:260px;
    }
}

@media(max-width:900px){
    .board-table-wrap{
        overflow-x:auto;
    }
    .board-table{
        min-width:1100px;
        table-layout:auto;
    }
}

/* v1.2.2 Status Board display-fill mode
   Goal: use the full display as an operations console while preserving the normal app layout elsewhere. */
.status-board-page .wrap{
    max-width:none;
    width:100%;
    padding:10px 12px 0;
}

.status-board-page .topbar{
    padding:8px 14px;
    gap:18px;
}

.status-board-page .brand span{
    font-size:.84rem;
    letter-spacing:.12em;
}

.status-board-page .brand b,
.status-board-page .topbar nav a,
.status-board-page .who{
    font-size:.82rem;
}

.status-board-page .topbar nav{
    gap:13px;
}

.status-board-page .footer{
    display:none;
}

.status-board-head{
    align-items:center;
    margin-bottom:8px;
    gap:12px;
}

.status-board-head h1{
    font-size:1.45rem;
    line-height:1;
}

.status-board-head p{
    font-size:.78rem;
    margin:.15rem 0 0;
}

.status-board-tools{
    width:min(720px,52vw);
    display:grid;
    grid-template-columns:minmax(260px,1fr) auto;
    gap:8px;
    align-items:center;
}

.status-board-tools input{
    height:34px;
    padding:7px 10px;
    font-size:.82rem;
}

.board-fullscreen{
    height:34px;
    padding:6px 13px;
    border-radius:8px;
    font-size:.78rem;
    white-space:nowrap;
}

.status-board-page .board-table-wrap{
    height:calc(100vh - 118px);
    overflow-y:auto;
    overflow-x:hidden;
    border-radius:7px;
}

.status-board-page .board-table{
    font-size:.76rem;
}

.status-board-page .board-table th{
    padding:5px 7px;
    font-size:.58rem;
}

.status-board-page .board-table td{
    height:22px;
    padding:3px 7px;
}

.status-board-page .name-cell strong{
    font-size:.78rem;
}

.status-board-page .compact-summary{
    margin-bottom:7px;
    gap:6px;
}

.status-board-page .compact-summary span{
    padding:4px 8px;
    font-size:.72rem;
}

/* Full-screen wall display mode. */
.status-board-page.status-board-fullscreen .topbar,
.status-board-page.status-board-fullscreen .footer{
    display:none;
}

.status-board-page.status-board-fullscreen .wrap{
    padding:8px;
}

.status-board-page.status-board-fullscreen .status-board-head{
    margin-bottom:6px;
}

.status-board-page.status-board-fullscreen .status-board-head h1{
    font-size:1.25rem;
}

.status-board-page.status-board-fullscreen .status-board-head p{
    display:none;
}

.status-board-page.status-board-fullscreen .board-table-wrap{
    height:calc(100vh - 58px);
}

.status-board-page.status-board-fullscreen .board-fullscreen{
    opacity:.55;
}

@media(min-width:1600px){
    .status-board-page .board-table-wrap{
        height:calc(100vh - 104px);
    }
    .status-board-page .board-table{
        font-size:.72rem;
    }
    .status-board-page .board-table td{
        height:20px;
        padding:2px 7px;
    }
    .status-board-page .board-table th{
        padding:4px 7px;
        font-size:.56rem;
    }
    .status-board-page .name-cell strong{
        font-size:.75rem;
    }
}

@media(max-width:900px){
    .status-board-page .wrap{
        padding:12px;
    }
    .status-board-tools{
        width:100%;
        grid-template-columns:1fr;
    }
    .status-board-page .board-table-wrap{
        height:auto;
        max-height:none;
        overflow-x:auto;
    }
}

/* v1.3 Administration module */
.admin-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px;margin:24px 0}.admin-grid.two{grid-template-columns:repeat(auto-fit,minmax(340px,1fr))}.admin-card{display:block;border:1px solid #303030;background:#0b0b0b;border-radius:16px;padding:24px;text-decoration:none;color:#fff}.admin-card:hover{border-color:#fff}.admin-card h2{margin:0 0 10px;font-weight:400}.admin-card p{color:#aaa;min-height:42px}.admin-card strong{display:inline-block;margin-top:10px}.panel-only:hover{border-color:#303030}.admin-title-row{display:flex;justify-content:space-between;align-items:end;gap:18px;margin-bottom:18px}.admin-title-row h1{margin-bottom:0}.admin-filter{display:flex;gap:10px;align-items:center;margin:18px 0;flex-wrap:wrap}.admin-filter input,.admin-filter select{width:auto;min-width:190px;padding:11px 12px;background:#111;color:#fff;border:1px solid #444;border-radius:8px}.admin-table-wrap{overflow-x:auto}.admin-table{min-width:1180px}.admin-table th:last-child,.admin-table td:last-child{width:210px}.admin-actions{display:flex;gap:10px;white-space:nowrap}.admin-actions a{color:#ddd}.admin-actions a:hover{color:#fff}.admin-form{display:grid;gap:12px}.admin-form label{margin-bottom:0}.admin-form .check{display:flex;gap:8px;align-items:center;color:#ddd}.admin-form .check input{width:auto;margin:0}.mini-report{width:100%;border-collapse:collapse}.mini-report td{border-bottom:1px solid #252525;padding:10px 0}.mini-report td:last-child{text-align:right;font-weight:700}@media(max-width:900px){.admin-title-row{display:block}.admin-filter{display:grid}.admin-filter input,.admin-filter select{width:100%}}
