:root{--navy:#0b2a4a;--navy-2:#12375e;--navy-3:#1c4a78;--accent:#f5a524;--bg:#eef1f5;--panel:#fff;--border:#d7dde5;--border-strong:#b9c3cf;--text:#1a2330;--muted:#637083;--primary:#1f5fa8;--primary-hover:#184d89;--danger:#c0392b;--ok:#1e8e4e;--warn:#c77700;--radius:6px;--shadow:0 1px 2px #0f1e3214, 0 1px 1px #0f1e320a;color:var(--text);background:var(--bg);font-family:Segoe UI,system-ui,-apple-system,Roboto,Arial,sans-serif;font-size:14px}*{box-sizing:border-box}body{background:var(--bg);margin:0}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3{margin:0;font-weight:600}h2{font-size:15px}h3{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-size:13px}.shell{grid-template-columns:220px 1fr;min-height:100vh;display:grid}.sidebar{background:var(--navy);color:#cfdbe8;flex-direction:column;height:100vh;display:flex;position:sticky;top:0}.brand{border-bottom:1px solid #ffffff14;padding:16px 18px}.brand-logo{background:#fff;border-radius:6px;width:auto;height:40px;padding:4px 8px;display:block}.mydiary-head .brand-logo{flex:none;height:34px;padding:3px 6px}.auth-brand .brand-logo{padding:0}.brand-name{color:#fff;margin-top:8px;font-weight:600;display:block}.nav{flex:1;padding:10px 0}.nav a{color:#cfdbe8;border-left:3px solid #0000;align-items:center;gap:10px;padding:9px 18px;display:flex}.nav a:hover{background:var(--navy-2);color:#fff;text-decoration:none}.nav a.active{background:var(--navy-2);border-left-color:var(--accent);color:#fff;font-weight:600}.nav .icon{text-align:center;opacity:.85;width:18px}.sidebar-foot{color:#8fa6bf;border-top:1px solid #ffffff14;padding:12px 18px;font-size:12px}.main{flex-direction:column;min-width:0;display:flex}.topbar{background:var(--panel);border-bottom:1px solid var(--border);z-index:5;align-items:center;gap:12px;min-height:58px;padding:12px 22px;display:flex;position:sticky;top:0}.topbar h1{font-size:18px}.topbar .sub{color:var(--muted);font-size:13px}.topbar .spacer{flex:1}.content{padding:18px 22px 40px}.panel{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.panel-head{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:6px 10px;padding:10px 14px;display:flex}.panel-head .spacer{flex:1}.panel-body{padding:14px}.panel+.panel{margin-top:16px}.grid-2{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:16px;display:grid}.grid-3{grid-template-columns:minmax(0,2fr) minmax(0,1fr);align-items:start;gap:16px;display:grid}.grid-2>.panel+.panel,.grid-3>.panel+.panel{margin-top:0}.stack>*+*{margin-top:16px}@media (width<=1100px){.grid-2,.grid-3{grid-template-columns:1fr}}.stats{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:16px;display:grid}.stat{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);border-top:3px solid var(--primary);box-shadow:var(--shadow);padding:12px 14px}.stat .value{font-size:26px;font-weight:700}.stat .label{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:12px}.stat.warn{border-top-color:var(--warn)}.stat.danger{border-top-color:var(--danger)}.stat.ok{border-top-color:var(--ok)}table.list{border-collapse:collapse;width:100%}table.list th{text-align:left;text-transform:uppercase;letter-spacing:.03em;color:var(--muted);border-bottom:1px solid var(--border);white-space:nowrap;background:#f6f8fa;padding:8px 10px;font-size:12px}table.list td{vertical-align:middle;border-bottom:1px solid #edf0f4;padding:8px 10px}table.list tr:hover td{background:#f7faff}table.list tr.clickable{cursor:pointer}table.list .muted{color:var(--muted)}.table-wrap{overflow-x:auto}.empty{text-align:center;color:var(--muted);padding:24px}.btn{border:1px solid var(--border-strong);color:var(--text);font:inherit;cursor:pointer;white-space:nowrap;background:#fff;border-radius:5px;align-items:center;gap:6px;padding:6px 12px;display:inline-flex}.btn:hover{background:#f3f6f9;text-decoration:none}.btn:disabled{opacity:.55;cursor:default}.btn.primary{background:var(--primary);border-color:var(--primary);color:#fff}.btn.primary:hover{background:var(--primary-hover)}.btn.danger{color:var(--danger);border-color:#e5b3ad}.btn.danger:hover{background:#fdf1ef}.btn.small{padding:3px 8px;font-size:12px}.btn.ghost{background:0 0;border-color:#0000}.btn-group{display:inline-flex}.btn-group .btn{border-radius:0;margin-left:-1px}.btn-group .btn:first-child{border-radius:5px 0 0 5px;margin-left:0}.btn-group .btn:last-child{border-radius:0 5px 5px 0}.btn-group .btn.active{background:var(--navy-3);border-color:var(--navy-3);color:#fff}input,select,textarea{font:inherit;border:1px solid var(--border-strong);color:var(--text);background:#fff;border-radius:5px;width:100%;padding:6px 8px}input:focus,select:focus,textarea:focus{outline-offset:0;border-color:var(--primary);outline:2px solid #9cc0ea}input[type=checkbox]{width:auto}input[type=color]{height:34px;padding:2px}textarea{resize:vertical;min-height:70px}.form-grid{grid-template-columns:1fr 1fr;gap:12px 14px;display:grid}.form-grid .full{grid-column:1/-1}.field label{color:var(--muted);margin-bottom:4px;font-size:12px;font-weight:600;display:block}.field .hint{color:var(--muted);margin-top:4px;font-size:12px}.check{align-items:center;gap:8px;display:flex}.toolbar{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:12px;display:flex}.toolbar input,.toolbar select{width:auto;min-width:160px}.toolbar .spacer{flex:1}.error-text{color:var(--danger)}.badge{color:#3c4a5c;white-space:nowrap;background:#e8edf3;border-radius:10px;padding:1px 8px;font-size:12px;font-weight:600;display:inline-block}.badge.s-open{color:#1f5fa8;background:#e6effa}.badge.s-scheduled{color:#1e7a45;background:#e3f4ea}.badge.s-in-progress{color:#9a5b00;background:#fff3dc}.badge.s-on-hold{color:#6b3fa0;background:#f1e8fb}.badge.s-completed{color:#45515f;background:#e2e6ea}.badge.s-cancelled,.badge.s-blank{color:#a23225;background:#f9e3e0}.badge.s-submitted{color:#1f5fa8;background:#e6effa}.badge.s-reviewed,.badge.s-filed{color:#1e7a45;background:#e3f4ea}.status-select{width:auto;padding:2px 4px;font-size:12px;font-weight:600}.status-select.s-blank{color:#a23225;background:#fdf1ef}.status-select.s-in-progress{color:#9a5b00;background:#fff6e5}.status-select.s-submitted{color:#1f5fa8;background:#eef4fc}.status-select.s-reviewed{color:#1e7a45;background:#eaf6ef}.path-chip{align-items:center;gap:6px;min-width:0;max-width:100%;display:inline-flex}.path-chip code{border:1px solid var(--border);text-overflow:ellipsis;white-space:nowrap;text-align:left;direction:rtl;background:#f1f4f8;border-radius:4px;max-width:320px;padding:3px 6px;font-size:12px;overflow:hidden}.tabs{border-bottom:1px solid var(--border);flex-wrap:wrap;gap:2px;margin-bottom:14px;display:flex}.tabs button{font:inherit;cursor:pointer;color:var(--muted);background:0 0;border:0;border-bottom:3px solid #0000;margin-bottom:-1px;padding:8px 14px}.tabs button.active{color:var(--navy);border-bottom-color:var(--accent);font-weight:600}.tabs button .count{background:#e8edf3;border-radius:9px;margin-left:4px;padding:0 6px;font-size:11px}.folder-tree{border:1px solid var(--border);white-space:pre;background:#f6f8fa;border-radius:6px;padding:10px 12px;font-family:ui-monospace,Consolas,monospace;font-size:12.5px;line-height:1.5;overflow-x:auto}.badge.p-urgent{background:var(--danger);color:#fff}.badge.p-high{color:#a04d00;background:#fde3c4}.badge.p-low{color:#7a8594;background:#eef1f4}.dot{border-radius:50%;flex:none;width:10px;height:10px;display:inline-block}.chip{border:1px solid var(--border);white-space:nowrap;background:#f1f4f8;border-radius:14px;align-items:center;gap:6px;padding:3px 9px 3px 4px;font-size:12px;display:inline-flex}.chip .avatar{color:#fff;border-radius:50%;justify-content:center;align-items:center;width:20px;height:20px;font-size:10px;font-weight:700;display:inline-flex}.chip .x{cursor:pointer;color:var(--muted);margin-left:2px}.chip .x:hover{color:var(--danger)}.chips{flex-wrap:wrap;gap:6px;display:flex}.modal-backdrop{z-index:50;background:#0a192d73;justify-content:center;align-items:flex-start;padding:60px 16px;display:flex;position:fixed;inset:0;overflow-y:auto}.modal{background:#fff;border-radius:8px;width:100%;max-width:640px;box-shadow:0 20px 50px #00000040}.modal-head{border-bottom:1px solid var(--border);align-items:center;padding:14px 18px;display:flex}.modal-head h2{flex:1;font-size:16px}.modal-body{padding:18px}.modal-foot{border-top:1px solid var(--border);justify-content:flex-end;gap:8px;padding:12px 18px;display:flex}.toasts{z-index:100;flex-direction:column;gap:8px;display:flex;position:fixed;bottom:18px;right:18px}.toast{background:var(--navy);color:#fff;border-radius:6px;max-width:380px;padding:10px 14px;box-shadow:0 6px 20px #0003}.toast.error{background:var(--danger)}.detail-head{align-items:flex-start;gap:16px;display:flex}.kv{grid-template-columns:140px 1fr;gap:6px 12px;display:grid}.kv dt{color:var(--muted);font-size:13px}.kv dd{margin:0}.scheduler{grid-template-columns:290px minmax(0,1fr);align-items:start;gap:14px;display:grid}.side-panel{flex-direction:column;max-height:calc(100vh - 92px);display:flex;position:sticky;top:76px}.side-panel .panel-body{flex:1;min-height:0;padding:10px;overflow-y:auto}.side-tools{border-bottom:1px solid var(--border);flex:none;padding:10px}.side-tools h3,.side-tools .drag-hint{margin-bottom:6px}.side-tools .eng-list{max-height:30vh;overflow-y:auto}.side-tiles{flex-wrap:wrap;gap:8px 14px;margin-top:10px;display:flex}.side-tiles .chips{gap:4px}.side-section+.side-section{margin-top:14px}.side-section h3{margin-bottom:8px}.drag-hint{color:var(--muted);margin-bottom:8px;font-size:12px}.job-card{border:1px solid var(--border);border-left:4px solid var(--primary);cursor:grab;box-shadow:var(--shadow);background:#fff;border-radius:5px;margin-bottom:6px;padding:6px 8px;font-size:12px}.job-card:active{cursor:grabbing}.job-card .ref{color:var(--navy);font-weight:700}.job-card .t{color:var(--text);margin:2px 0}.job-card .m{color:var(--muted)}.job-card.p-urgent{border-left-color:var(--danger)}.job-card.p-high{border-left-color:#e58a00}.job-card.p-low{border-left-color:#9aa6b4}.job-card.drop-over{outline:2px dashed var(--accent)}.eng-list{grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:4px;display:grid}.eng-drag{border:1px solid var(--border);cursor:grab;background:#fff;border-radius:5px;align-items:center;gap:6px;min-width:0;padding:3px 6px;font-size:13px;display:flex}.eng-drag .n{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.board-wrap{overflow-x:auto}.board{border-top:1px solid var(--border);border-left:1px solid var(--border);background:#fff;min-width:900px;display:grid}.board>div{border-right:1px solid var(--border);border-bottom:1px solid var(--border)}.board .corner,.board .day-head{background:#f6f8fa;padding:8px;font-size:12px;font-weight:600}.board .day-head.today{box-shadow:inset 0 -3px 0 var(--accent);background:#fff5e0}.board .day-head.weekend{color:var(--muted)}.board .eng-cell{background:#fbfcfd;align-items:flex-start;gap:8px;padding:8px;font-size:13px;display:flex}.board .eng-cell .name{font-weight:600}.board .eng-cell .role,.board .eng-cell .load{color:var(--muted);font-size:11px}.board .cell{min-height:74px;padding:4px;transition:background .1s}.board .cell.weekend{background:#f8f9fb}.board .cell.today{background:#fffbf2}.board .cell.drop-over{outline:2px dashed var(--primary);outline-offset:-3px;background:#e7f0fb}.board .unalloc{background:#fff8ec}.board .cell.load-over{background:#fdecea;box-shadow:inset 0 0 0 2px #e9a59d}.board .cell.load-ot{background:#fff4e0;box-shadow:inset 0 0 0 2px #f0c77a}.absence{cursor:pointer;border-radius:4px;margin-bottom:4px;padding:3px 6px;font-size:11.5px;font-weight:600}.absence.compact{white-space:nowrap;text-overflow:ellipsis;margin-bottom:2px;padding:1px 5px;font-size:11px;overflow:hidden}.absence-tile{cursor:grab;border-radius:12px;padding:2px 10px;font-size:12px;font-weight:600;display:inline-block}.a-annual-leave{color:#1d6b3c;background:repeating-linear-gradient(135deg,#dff3e6,#dff3e6 6px,#cdebd8 6px 12px);border:1px solid #a9d8ba}.a-sick{color:#9a2c20;background:repeating-linear-gradient(135deg,#fbe3e0,#fbe3e0 6px,#f6d1cc 6px 12px);border:1px solid #eab3ab}.a-other{color:#54418a;background:repeating-linear-gradient(135deg,#ece8f6,#ece8f6 6px,#e0daf1 6px 12px);border:1px solid #cbc1e6}.board .day-head.bank-hol,.board .cell.bank-hol{background:repeating-linear-gradient(135deg,#f4f5f7,#f4f5f7 6px,#eceef2 6px 12px)}.bh-label{color:var(--muted);text-transform:uppercase;letter-spacing:.03em;font-size:10px;font-weight:700}.leave-stats{text-align:center;grid-template-columns:repeat(5,1fr);gap:8px;display:grid}.leave-stats .value{font-size:22px;font-weight:700}.leave-stats .label{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:11px}.skill-chips{flex-wrap:wrap;gap:4px;display:inline-flex}.skill-chip{border:1px solid var(--border);white-space:nowrap;background:#eef2f7;border-radius:10px;padding:0 8px;font-size:12px}.skill-chip.has{color:#1e7a45;background:#e3f4ea;border-color:#b5dcc4}.skill-chip.missing{color:#a23225;background:#fdecea;border-color:#eab8b0}.note-btn{cursor:pointer;vertical-align:baseline;background:0 0;border:0;margin-left:2px;padding:0 2px;font-size:12px;line-height:1}.note-btn:not(.has){opacity:0}.booking:hover .note-btn:not(.has){opacity:.45}.note-btn:hover{transform:scale(1.2)}.skill-warn{color:#a23225;background:#fdecea;border:1px solid #eab8b0;border-radius:8px;margin-left:4px;padding:0 5px;font-size:10px;font-weight:700;display:inline-block}.skill-fit{margin:2px 0;font-size:11px;font-weight:700}.skill-fit.skill-match{color:var(--ok)}.skill-fit.skill-miss{color:var(--danger)}.board .eng-cell.skill-match{box-shadow:inset 4px 0 0 var(--ok);background:#eef8f1}.board .eng-cell.skill-miss{box-shadow:inset 4px 0 0 var(--danger)}.board .cell.skill-match{background-color:#f3fbf6}.board .cell.skill-miss{opacity:.6}.skill-option{border:1px solid var(--border-strong);font:inherit;cursor:pointer;color:var(--text);background:#fff;border-radius:14px;padding:3px 10px;font-size:12.5px}.skill-option:hover{background:#f3f6f9}.skill-option.on{border-color:var(--primary);color:var(--navy);background:#dbe8f8;font-weight:600}.entry{cursor:pointer;color:#2b3644;text-overflow:ellipsis;background:#f1f3f6;border-left:3px solid #8a96a8;border-radius:4px;margin:2px 0 4px;padding:2px 6px;font-size:11.5px;overflow:hidden}.day-head .entry{white-space:normal;font-weight:400}.month .entry{white-space:nowrap;margin-bottom:2px;font-size:11px}.d-note{background:#f1f3f6;border-left-color:#8a96a8}.d-office{background:#e8f0fa;border-left-color:#1f5fa8}.d-training{background:#f1ebfd;border-left-color:#7c3aed}.d-vehicle{background:#fdf6e3;border-left-color:#ca8a04}.d-meeting{background:#e6f6fa;border-left-color:#0891b2}.d-other{background:#eef1f4;border-left-color:#64748b}.entry-tile{border:1px dashed var(--border-strong);color:var(--text);background:#fff}.agenda{padding:0}.agenda-day{border-bottom:1px solid var(--border);padding:10px 14px}.agenda-day.today{box-shadow:inset 4px 0 0 var(--accent);background:#fffbf2}.agenda-day.weekend{background:#fafbfc}.agenda-date{align-items:center;gap:8px;margin-bottom:6px;display:flex}.agenda-date .btn{margin-left:auto}.agenda-all{margin-bottom:6px}.agenda-empty{font-size:12px}.agenda-row{border-top:1px dashed #edf0f4;grid-template-columns:170px 1fr;gap:10px;padding:4px 0;display:grid}.agenda-who{align-items:center;gap:6px;font-size:13px;font-weight:600;display:flex}.agenda-items>*{margin-bottom:4px}.agenda-booking{cursor:pointer;background:#f6f8fa;border-radius:4px;padding:3px 6px;font-size:13px}.agenda-booking:hover{background:#eef4fc}.agenda-slot{float:right;color:var(--muted);font-size:12px}@media print{.sidebar,.side-panel,.topbar .btn,.topbar .btn-group,.topbar input,.topbar label,.toasts,.legend,.no-print,.rm,.note-btn:not(.has){display:none!important}.shell,.scheduler{display:block}.topbar{border:0;position:static}.content{padding:0}.board{min-width:0}.board .corner,.board .day-head{position:static}body,.content{background:#fff}}.load-badge{border:1px solid var(--border);color:var(--muted);font:inherit;cursor:pointer;background:#f3f5f8;border-radius:10px;margin-bottom:3px;padding:0 7px;font-size:11px;font-weight:600;line-height:18px;display:inline-block}.load-badge:hover{filter:brightness(.96)}.load-badge.over{background:var(--danger);border-color:var(--danger);color:#fff}.load-badge.ot{color:#3d2600;background:#f5a524;border-color:#e0931a}.load-badge.compact{margin-bottom:0;padding:0 5px;font-size:10px;line-height:16px}.booking{border-left:4px solid var(--primary);cursor:grab;background:#eef4fc;border-radius:4px;margin-bottom:4px;padding:4px 6px 4px 8px;font-size:11.5px;line-height:1.3;position:relative}.booking:hover{filter:brightness(.97)}.booking .ref{font-weight:700}.booking .slot{float:right;color:var(--muted);font-size:10px;font-weight:700}.booking .site{color:#405066;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.booking.done{opacity:.55}.booking.drop-over{outline:2px dashed var(--accent)}.booking .rm{color:var(--muted);cursor:pointer;background:0 0;border:0;font-size:13px;line-height:1;display:none;position:absolute;top:1px;right:3px}.booking:hover .rm{display:block}.booking:hover .slot{visibility:hidden}.month{border-top:1px solid var(--border);border-left:1px solid var(--border);background:#fff;grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.month>div{border-right:1px solid var(--border);border-bottom:1px solid var(--border)}.month .mhead{background:#f6f8fa;padding:6px 8px;font-size:12px;font-weight:600}.month .mday{min-height:110px;padding:4px}.month .mday.other{background:#f8f9fb}.month .mday.other .num{color:#aab3bf}.month .mday.today .num{background:var(--accent);color:var(--navy);border-radius:10px;padding:0 6px}.month .mday.drop-over{outline:2px dashed var(--primary);outline-offset:-3px;background:#e7f0fb}.month .num{margin-bottom:3px;font-size:12px;font-weight:700;display:inline-block}.month .booking{white-space:nowrap;text-overflow:ellipsis;margin-bottom:2px;padding:2px 5px 2px 6px;font-size:11px;overflow:hidden}.legend{color:var(--muted);flex-wrap:wrap;gap:12px;font-size:12px;display:flex}.legend span{align-items:center;gap:5px;display:inline-flex}.file-drop{border:2px dashed var(--border-strong);text-align:center;color:var(--muted);cursor:pointer;border-radius:6px;padding:16px}.file-drop.over{border-color:var(--primary);color:var(--primary);background:#eef4fc}.danger-zone{border-color:#eab8b0}.danger-zone .panel-head h2{color:var(--danger)}.notice{background:#fff8e6;border:1px solid #f0d9a4;border-radius:6px;padding:10px 12px;font-size:13px}.notice.ok{background:#eaf6ef;border-color:#b5dcc4}.notice.bad{background:#fdf1ef;border-color:#eab8b0}.muted{color:var(--muted)}.nowrap{white-space:nowrap}.right{text-align:right}.repeat-box{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);margin-top:14px;padding:10px 12px}.repeat-box h4{margin:0 0 6px;font-size:13px}.mdiary{background:var(--bg);max-width:640px;min-height:100vh;margin:0 auto;padding-bottom:24px}.mdiary-head{background:var(--navy);color:#fff;z-index:2;align-items:center;gap:12px;padding:14px 16px;display:flex;position:sticky;top:0}.mdiary-name{font-size:18px;font-weight:700}.mdiary-nav{gap:6px;padding:10px 16px;display:flex}.mdiary-nav button{border:1px solid var(--border);background:var(--panel);border-radius:var(--radius);height:40px;color:var(--text);flex:0 0 48px;font-size:16px}.mdiary-nav button:nth-child(2){flex:1}.mdiary-nav button.active{background:var(--primary);border-color:var(--primary);color:#fff}.mdiary-week{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin:10px 0 6px;font-size:12px}.mdiary-day{padding:4px 16px 10px}.mdiary-day h2{flex-wrap:wrap;align-items:center;gap:8px;margin:8px 0;font-size:16px;display:flex}.mdiary-today{background:var(--accent);color:var(--navy);border-radius:10px;padding:2px 8px;font-size:12px}.mdiary-tag{color:var(--warn);font-size:12px;font-weight:600}.mdiary-absence,.mdiary-entry{white-space:normal;margin-bottom:6px;padding:8px 10px;font-size:14px;display:block}.mdiary-visit{background:var(--panel);border:1px solid var(--border);border-left:4px solid var(--primary);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:8px;padding:10px 12px;font-size:14px}.mdiary-visit-top{justify-content:space-between;gap:8px;font-size:12px;display:flex}.mdiary-slot{font-weight:700}.mdiary-site{margin-top:2px;font-size:17px;font-weight:700}.mdiary-address{margin-top:6px;display:block}.mdiary-notes{border-radius:var(--radius);background:#fff8e1;margin-top:6px;padding:6px 8px}.mdiary-visit dl{grid-template-columns:auto 1fr;gap:2px 10px;margin:8px 0 0;display:grid}.mdiary-visit dt{color:var(--muted)}.mdiary-visit dd{overflow-wrap:anywhere;margin:0}.mdiary-empty{color:var(--muted);padding:2px 0 6px;font-size:14px}.mdiary-error{color:var(--danger);border-radius:var(--radius);background:#fdecea;margin:16px;padding:14px}.mdiary-foot{text-align:center;padding:16px}.mdiary-foot .btn{padding:10px 16px;font-size:15px}.link-row{grid-template-columns:96px minmax(0,1fr) auto auto;align-items:center;gap:6px;font-size:13px;display:grid}.link-row label{font-weight:600}.link-row input{font-family:ui-monospace,Consolas,monospace;font-size:12px}.auth-page{background:var(--navy);justify-content:center;align-items:center;min-height:100vh;padding:16px;display:flex}.auth-card{background:var(--panel);border-radius:10px;width:100%;max-width:400px;padding:24px;box-shadow:0 10px 30px #00000040}.auth-card h1{margin:14px 0 12px;font-size:20px}.auth-brand{color:var(--navy);align-items:center;gap:10px;font-weight:700;display:flex}.auth-card .btn.primary{justify-content:center;width:100%;padding:10px;font-size:15px}.auth-card input{width:100%;font-size:16px}.link-btn{color:var(--primary);cursor:pointer;background:0 0;border:0;margin-top:14px;padding:0;font-size:13px;display:inline-block}.sidebar-user{flex-direction:column;align-items:flex-start;gap:2px;margin-top:8px;display:flex}.sidebar-user b{color:#fff}.sidebar-user button{color:inherit;cursor:pointer;background:0 0;border:0;padding:0;font-size:12px;text-decoration:underline}.login-row{border-top:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:8px 0;display:flex}.mydiary{background:var(--bg);min-height:100vh;padding-bottom:24px}.mydiary-head{background:var(--navy);color:#fff;z-index:5;align-items:center;gap:12px;padding:12px 16px;display:flex;position:sticky;top:0}.mydiary-title{flex:1;min-width:0}.mydiary-name{font-size:17px;font-weight:700}.mydiary-sub{opacity:.75;font-size:12px}.mydiary-menu{position:relative}.mydiary-menu summary{cursor:pointer;padding:0 4px;font-size:22px;list-style:none}.mydiary-menu summary::-webkit-details-marker{display:none}.mydiary-menu>div{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);flex-direction:column;min-width:170px;display:flex;position:absolute;top:34px;right:0}.mydiary-menu>div button{text-align:left;color:var(--text);cursor:pointer;background:0 0;border:0;padding:10px 14px;font-size:14px}.mydiary-menu>div button:hover{background:var(--bg)}.mydiary-bar{flex-wrap:wrap;gap:8px;max-width:1400px;margin:0 auto;padding:10px 16px;display:flex}.mydiary-pick{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);max-width:1368px;margin:0 16px 10px;padding:10px 12px;font-size:13px}.mydiary-pick-list{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:6px 12px;margin-top:8px;display:grid}.mydiary-pick-list .check{align-items:center;gap:6px;padding:4px 0;font-size:14px;display:flex}.mydiary .mdiary-day,.mydiary .mdiary-foot{max-width:680px;margin:0 auto}.mdiary-person{border-left:4px solid var(--border);margin-bottom:8px;padding-left:8px}.mdiary-person-name{align-items:center;gap:6px;margin-bottom:4px;font-size:13px;font-weight:700;display:flex}.mdiary-visit.compact{text-align:left;width:100%;font:inherit;cursor:pointer;color:var(--text);font-size:14px;display:block}.mdiary-details .mdiary-visit-top{margin-bottom:4px}.mydiary-weeks{max-width:1400px;margin:0 auto;padding:0 16px}.mydiary-grid-wrap{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:14px;overflow-x:auto}.mydiary-grid{border-collapse:collapse;table-layout:fixed;width:100%;min-width:720px;font-size:12px}.mydiary-grid th,.mydiary-grid td{border-bottom:1px solid var(--border);border-left:1px solid var(--border);vertical-align:top;text-align:left;padding:6px}.mydiary-grid thead th{background:var(--bg);font-size:12px}.mydiary-grid thead th:first-child,.mydiary-grid tbody th{width:140px}.mydiary-grid tbody th{white-space:nowrap;text-overflow:ellipsis;font-size:13px;overflow:hidden}.mydiary-grid tr.mine th,.mydiary-grid tr.mine td{background:#fffaf0}.mydiary-grid .today{box-shadow:inset 0 3px 0 var(--accent)}.mydiary-grid .entry,.mydiary-grid .absence-tile{white-space:nowrap;text-overflow:ellipsis;margin-bottom:3px;display:block;overflow:hidden}.mydiary-chip{text-align:left;background:var(--panel);border:1px solid var(--border);border-left:4px solid var(--primary);width:100%;font:inherit;cursor:pointer;color:var(--text);border-radius:4px;margin-bottom:4px;padding:4px 6px;font-size:12px;display:block}.mydiary-chip b,.mydiary-chip .muted{white-space:nowrap;text-overflow:ellipsis;display:block;overflow:hidden}.nav-badge{background:var(--danger);color:#fff;border-radius:10px;justify-content:center;align-items:center;min-width:20px;height:20px;margin-left:auto;padding:0 6px;font-size:11px;font-weight:700;display:inline-flex}.inbox{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);grid-template-columns:320px minmax(0,1fr);height:calc(100vh - 130px);min-height:460px;display:grid;overflow:hidden}.inbox-list{border-right:1px solid var(--border);flex-direction:column;display:flex;overflow-y:auto}.inbox-item{text-align:left;border:0;border-bottom:1px solid var(--border);cursor:pointer;width:100%;font:inherit;color:var(--text);background:0 0;align-items:center;gap:10px;padding:10px 12px;display:flex}.inbox-item:hover{background:var(--bg)}.inbox-item.active{background:#e8f0fb}.inbox-item.unread b{color:var(--primary)}.inbox-avatar{text-align:center;width:30px;font-size:20px}.inbox-main{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.inbox-top{justify-content:space-between;gap:6px;font-size:13px;display:flex}.inbox-preview{white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.inbox-waiting{color:var(--warn);font-size:11px;font-weight:700}.inbox-start{margin:10px 12px}.inbox-thread{flex-direction:column;min-height:0;display:flex}.inbox-head{border-bottom:1px solid var(--border);align-items:center;gap:10px;padding:10px 14px;display:flex}.inbox-back{display:none}@media (width<=800px){.inbox{grid-template-columns:1fr;height:calc(100vh - 110px)}.inbox.has-selection .inbox-list,.inbox:not(.has-selection) .inbox-thread{display:none}.inbox-back{display:inline-flex}}.chat{flex-direction:column;flex:1;min-height:0;display:flex}.chat-list{background:var(--bg);flex:1;padding:12px 14px;overflow-y:auto}.chat-empty{color:var(--muted);text-align:center;padding:30px 10px;font-size:14px}.chat-day{text-align:center;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin:12px 0 8px;font-size:11px}.chat-msg{background:var(--panel);border:1px solid var(--border);border-radius:10px;max-width:min(78%,560px);margin-bottom:4px;padding:7px 10px;font-size:14px}.chat-msg.ours{background:#e3efff;border-color:#c4dafa;margin-left:auto}.chat-msg.announcement{background:#fff6e0;border-color:#f2d58f}.chat-meta{margin-bottom:2px;font-size:11px}.chat-body{white-space:pre-wrap;overflow-wrap:anywhere}.chat-files{flex-wrap:wrap;gap:6px;margin-top:6px;display:flex}.msg-photo{border-radius:6px;max-width:240px;display:block;overflow:hidden}.msg-photo img,video.msg-photo{object-fit:cover;max-width:240px;max-height:240px;display:block}.msg-file{font-size:13px}.chat-note{color:var(--muted);margin:0 4px 8px;font-size:11px}.chat-note.ours{text-align:right}.chat-compose{border-top:1px solid var(--border);background:var(--panel);padding:8px 10px}.chat-row{align-items:flex-end;gap:6px;display:flex}.chat-row textarea{resize:none;flex:1;min-height:42px;font-size:15px}.chat-pending{flex-wrap:wrap;gap:6px;margin-bottom:6px;display:flex}.chat-pending .chip button{cursor:pointer;background:0 0;border:0;margin-left:4px}.mydiary-tabs{background:var(--navy-2);z-index:4;display:flex;position:sticky;top:56px}.mydiary-tabs button{color:#c8d6e5;cursor:pointer;background:0 0;border:0;border-bottom:3px solid #0000;flex:1;justify-content:center;align-items:center;gap:6px;padding:10px;font-size:15px;display:inline-flex}.mydiary-tabs button.active{color:#fff;border-bottom-color:var(--accent);font-weight:700}.mydiary-tabs .nav-badge{margin-left:0}.mydiary-messages{flex-direction:column;max-width:760px;height:calc(100vh - 110px);margin:0 auto;padding:10px 12px 0;display:flex}.mydiary-messages .chat{border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);overflow:hidden}.push-prompt{border-radius:var(--radius);background:#fff6e0;border:1px solid #f2d58f;align-items:center;gap:10px;margin:10px 16px 0;padding:8px 12px;font-size:14px;display:flex}.content>.push-prompt{margin:0 0 12px}.push-prompt span{flex:1}.push-prompt-x{cursor:pointer;color:var(--muted);background:0 0;border:0;font-size:14px}.mydiary .push-prompt{max-width:728px}@media (width>=760px){.mydiary .push-prompt{margin:10px auto 0}}.ts-overlay{z-index:60;background:var(--bg);-webkit-overflow-scrolling:touch;position:fixed;inset:0;overflow-y:auto}.ts-head{z-index:2;background:var(--navy);color:#fff;align-items:center;gap:10px;padding:10px 14px;display:flex;position:sticky;top:0}.ts-back{color:#fff;cursor:pointer;background:0 0;border:0;padding:4px 6px;font-size:16px}.ts-title{flex-direction:column;flex:1;min-width:0;display:flex}.ts-title span{opacity:.8;font-size:12px}.ts-state{white-space:nowrap;background:#ffffff1f;border-radius:10px;padding:3px 8px;font-size:12px}.ts-state.offline{background:var(--accent);color:var(--navy);white-space:normal;max-width:150px;font-weight:700}.ts-bar{flex-wrap:wrap;align-items:center;gap:10px;max-width:820px;margin:0 auto;padding:10px 14px;font-size:13px;display:flex}.ts-progress{background:var(--border);border-radius:4px;flex:120px;height:8px;overflow:hidden}.ts-progress div{background:var(--ok);height:100%;transition:width .3s}.ts-notice{max-width:792px;margin:0 auto 8px}.ts-rows{max-width:820px;margin:0 auto;padding:0 14px 40px}.ts-card{background:var(--panel);border:1px solid var(--border);border-left:5px solid var(--border-strong);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:10px;padding:10px 12px}.ts-card.is-ok{border-left-color:var(--ok)}.ts-card.is-fault{border-left-color:var(--danger);background:#fff8f7}.ts-card.is-na{border-left-color:var(--muted)}.ts-card-top{gap:8px;display:flex}.ts-n{background:var(--bg);border-radius:11px;justify-content:center;align-items:center;min-width:22px;height:22px;font-size:12px;font-weight:700;display:inline-flex}.ts-item{flex:1;font-size:15px}.ts-item .muted{font-size:12px}.ts-check{margin:6px 0 8px 30px;font-size:13px}.ts-expected{background:#e8f0fb;border-radius:10px;margin-left:8px;padding:1px 8px;font-size:12px;font-weight:600;display:inline-block}.ts-fields{flex-wrap:wrap;gap:8px;margin-left:30px;display:flex}.ts-field{color:var(--muted);flex-direction:column;flex:90px;font-size:11px;display:flex}.ts-field input{padding:8px;font-size:16px}.ts-result{flex-wrap:wrap;align-items:center;gap:8px;margin:10px 0 0 30px;display:flex}.ts-res{border:2px solid var(--border-strong);background:var(--panel);cursor:pointer;min-width:56px;height:42px;color:var(--text);border-radius:8px;font-size:17px;font-weight:700}.ts-res-ok.on{background:var(--ok);border-color:var(--ok);color:#fff}.ts-res-fault.on{background:var(--danger);border-color:var(--danger);color:#fff}.ts-res-na.on{background:var(--muted);border-color:var(--muted);color:#fff}.ts-comment-btn{color:var(--primary);cursor:pointer;background:0 0;border:0;margin-left:auto;font-size:13px}.ts-comment{width:calc(100% - 30px);margin:8px 0 0 30px;font-size:15px}.ts-label{margin-bottom:6px;font-weight:700;display:block}.ts-card textarea{box-sizing:border-box;width:100%}.ts-actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;display:flex}.ts-actions .btn.primary{padding:12px 20px;font-size:15px}.ts-list{flex-direction:column;gap:8px;display:flex}.ts-list-item{border:1px solid var(--border);border-left:5px solid var(--accent);border-radius:var(--radius);background:var(--panel);cursor:pointer;font:inherit;text-align:left;color:var(--text);justify-content:space-between;gap:10px;padding:14px;font-size:15px;display:flex}.ts-list-item.submitted{border-left-color:var(--ok)}.ts-chip{border:1px solid var(--border-strong);background:var(--panel);cursor:pointer;color:var(--text);border-radius:10px;margin:0 4px 4px 0;padding:2px 8px;font-size:12px;display:inline-block}.ts-chip.submitted{border-color:var(--ok);color:var(--ok);font-weight:600}.ts-chip-fault{color:var(--danger);font-weight:700}.ts-open{justify-content:center;width:100%;margin-top:10px;padding:10px;font-size:15px}.spinner{border:4px solid var(--border);border-top-color:var(--primary);border-radius:50%;width:34px;height:34px;animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.pe-table{font-size:13px;overflow-x:auto}.pe-row{border-bottom:1px solid var(--border);grid-template-columns:26px 1.1fr 1.6fr 1.1fr 1.1fr 1.1fr 54px 1.6fr 92px;align-items:center;gap:4px;min-width:1050px;padding:3px 0;display:grid}.pe-row input,.pe-row select{width:100%;min-width:0;padding:4px 6px;font-size:13px}.pe-head{color:var(--muted);text-transform:uppercase;font-size:11px;font-weight:700}.pe-row.flag{background:#fff8e6}.pe-btns{gap:2px;display:flex}.pe-note{color:var(--warn);grid-column:2/-1;align-items:center;gap:6px;font-size:12px;display:flex}.pe-note input{flex:1}.modal:has(.pe-table){max-width:1200px!important}.ts-card textarea.ts-comment{width:calc(100% - 30px)}.mydiary-ts{max-width:680px;margin:0 auto;padding-top:4px}.ts-visit .ts-list{margin-top:10px}.ts-visit.done{border-left-color:var(--ok)}.gdrive p{font-size:14px}.auth-links{color:var(--muted);text-align:center;margin-top:18px;font-size:12px}.mdiary-rams{background:#fff8e6;border:1px solid #f0c36d;border-radius:6px;flex-direction:column;gap:4px;margin-top:10px;padding:8px 10px;display:flex}.mdiary-rams-title{color:#8a5a00;font-size:13px;font-weight:700}.mdiary-rams a{overflow-wrap:anywhere;font-size:14px}.subfolders,.subfolder+.subfolder{border-top:1px solid var(--border)}.subfolder-name{text-align:left;width:100%;font:inherit;cursor:pointer;color:var(--text);background:0 0;border:0;align-items:center;gap:6px;padding:7px 14px;display:flex}.subfolder-name:hover{background:#f5f8fb}.subfolder-name .caret{width:12px;color:var(--muted)}.subfolder-inside{border-left:2px solid var(--border);margin-left:22px}.subfolder-inside .list td{padding-top:5px;padding-bottom:5px}.subfolder-inside>.muted{padding:6px 12px;font-size:13px}.import-steps{margin-top:0;padding-left:20px}.import-steps li{margin-bottom:6px}.import-done ul{margin:6px 0 10px;padding-left:20px}
