:root{color-scheme:light;--red: #cc0000;--red-bright: #ff0000;--gray: #898989;--gray-2: #9f9f9f;--ink: #111111;--blue: #28416e;--blue-2: #5582a0;--paper: #ffffff;--surface: #ececec;--line: #d8dce2;--shadow: 0 14px 34px rgba(20, 33, 54, .12);font-family:Inter,Segoe UI,Arial,sans-serif}*{box-sizing:border-box}body{margin:0;color:var(--ink);background:#f4f6f8}button,input,select,textarea{font:inherit}button,a,.upload{align-items:center;border:0;border-radius:7px;cursor:pointer;display:inline-flex;gap:8px;min-height:38px;padding:9px 12px;text-decoration:none;transition:background .15s ease,color .15s ease,transform .15s ease}button:hover,a:hover,.upload:hover{transform:translateY(-1px)}.topbar{align-items:center;background:#fffffff5;border-bottom:1px solid var(--line);box-shadow:0 10px 30px #1e2d4614;color:var(--ink);display:flex;justify-content:space-between;min-height:74px;padding:12px 24px;position:sticky;top:0;z-index:8}.topbar nav{align-items:center;display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end}.brand{align-items:center;display:flex;gap:14px}.brand img{background:#fff;border-radius:6px;height:48px;object-fit:contain;width:48px}.brand span{color:var(--red);display:block;font-size:13px;font-weight:800}.brand strong{color:var(--blue);display:block;font-size:22px;line-height:1.1}.user-chip{align-items:flex-end;display:grid;line-height:1.1;text-align:right}.user-chip b{font-size:14px}.user-chip span{color:var(--gray);font-size:12px}.chat-link,.nav-button{background:#eef3f7;color:var(--blue)}.logout-button{background:var(--blue);color:#fff}.auth-shell{align-items:center;display:grid;min-height:100vh;padding:24px;place-items:center}.auth-card{background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow);display:grid;gap:14px;max-width:440px;padding:26px;width:min(100%,440px)}.auth-brand{align-items:center;display:flex;gap:12px}.auth-brand img{border:1px solid var(--line);border-radius:7px;height:54px;width:54px}.auth-brand span{color:var(--red);display:block;font-size:13px;font-weight:800}.auth-brand strong{color:var(--blue);display:block;font-size:22px}.auth-card h1{color:var(--blue);font-size:25px;margin:5px 0 0}.auth-card p,.password-rule{color:var(--gray);line-height:1.45;margin:0}.form-error{background:#fff0f0;border:1px solid #f1b3b3;border-radius:7px;color:var(--red);font-size:14px;padding:9px 10px}.site-link{color:var(--blue);justify-content:center}.workspace{display:grid;gap:16px;grid-template-columns:286px minmax(0,1fr);padding:16px}.sidebar{display:flex;flex-direction:column;gap:14px}.month-card,.filter-group,.legend,.project-add,.quick-actions,.import-preview{background:var(--paper);border:1px solid var(--line);border-radius:8px;box-shadow:0 8px 24px #14213612;padding:13px}.month-switch{align-items:center;display:grid;gap:8px;grid-template-columns:38px 1fr 38px;margin-bottom:12px}.month-switch button{background:#eef3f7;color:var(--blue);justify-content:center;padding:0}.month-switch div{min-width:0;text-align:center}.month-switch b{color:var(--blue);display:block;font-size:19px}.month-switch select{border:0;color:var(--gray);margin-top:3px;outline:0}.primary{background:var(--red);color:#fff;justify-content:center;width:100%}.primary:hover{background:var(--red-bright)}.filter-group{display:grid;gap:10px}label{display:grid;gap:7px}label span,.filter-group span{align-items:center;color:var(--blue);display:flex;font-size:13px;font-weight:700;gap:6px}input,select,textarea{background:#fff;border:1px solid var(--line);border-radius:7px;min-height:38px;padding:8px 10px;width:100%}textarea{resize:vertical}.legend h2,.project-add h2,.import-preview h2{color:var(--blue);font-size:16px;margin:0 0 12px}.legend{display:flex;flex-wrap:wrap;gap:8px}.legend h2{flex-basis:100%}.legend span{align-items:center;background:#f8f8f8;border:1px solid var(--line);border-radius:18px;display:inline-flex;font-size:12px;gap:6px;padding:5px 9px}.legend i{border:1px solid rgba(0,0,0,.12);border-radius:50%;display:inline-block;height:14px;width:14px}.project-add{display:grid;gap:10px}.quick-actions{display:grid;gap:8px}.quick-actions h2{color:var(--blue);font-size:15px;margin:0 0 4px}.quick-actions a{background:#f7f9fb;border:1px solid var(--line);color:var(--blue);justify-content:flex-start}.inline{display:grid;gap:8px;grid-template-columns:48px 1fr}.inline input[type=color]{height:38px;padding:3px}.inline button{background:var(--blue);color:#fff;justify-content:center}.content{min-width:0}.toolbar{align-items:center;display:flex;gap:16px;justify-content:space-between;margin-bottom:14px}.toolbar p{color:var(--gray);font-size:13px;margin:0 0 4px}.toolbar h1{color:var(--blue);font-size:26px;margin:0}.actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.actions a,.upload{background:#fff;border:1px solid var(--line);color:var(--blue);position:relative}.day-overview{display:grid;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:14px}.day-card{background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:0 8px 24px #14213612;padding:14px}.day-card>div{align-items:baseline;display:flex;justify-content:space-between;gap:10px;margin-bottom:10px}.day-card h2{color:var(--blue);font-size:16px;margin:0}.day-card span{color:var(--gray);font-size:13px}.day-card ul{display:grid;gap:7px;list-style:none;margin:0;padding:0}.day-card li{align-items:center;display:grid;gap:8px;grid-template-columns:minmax(0,1fr) auto}.day-card b{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.day-card em{border:1px solid rgba(0,0,0,.08);border-radius:6px;font-size:12px;font-style:normal;max-width:128px;overflow:hidden;padding:4px 7px;text-overflow:ellipsis;white-space:nowrap}.upload input{inset:0;opacity:0;position:absolute}.schedule-frame{background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:0 8px 24px #14213612;max-height:calc(100vh - 260px);overflow:auto}.schedule-table{border-collapse:separate;border-spacing:0;min-width:1180px;width:100%}.schedule-table th,.schedule-table td{border-bottom:1px solid var(--line);border-right:1px solid var(--line);height:44px;min-width:62px;padding:0;text-align:center}.schedule-table thead th{background:#f5f7fa;color:var(--blue);font-size:13px;position:sticky;top:0;z-index:3}.schedule-table .employee-col{background:#fff;left:0;min-width:196px;padding:9px 12px;position:sticky;text-align:left;z-index:4}.schedule-table tbody .employee-col{z-index:2}.schedule-table .employee-col b{display:block;font-size:14px}.schedule-table .employee-col small{color:var(--gray);display:block;font-size:12px;margin-top:3px}.schedule-table td.weekend,.schedule-table th.weekend{box-shadow:inset 0 0 0 999px #28416e14}.schedule-table td.today,.schedule-table th.today{outline:2px solid var(--red);outline-offset:-2px}.schedule-table td.selected{box-shadow:inset 0 0 0 2px var(--blue),inset 0 0 0 999px #ffffff2e}.schedule-table td:hover{filter:saturate(1.05) brightness(.98)}.schedule-table td button{background:transparent;color:#172033;display:block;font-size:12px;height:100%;line-height:1.15;min-height:46px;overflow-wrap:anywhere;padding:4px;width:100%}.schedule-table td.status-weekend button{font-weight:700}.schedule-table td button:disabled{cursor:default}.schedule-table td button:hover{background:#ffffff6b;transform:none}.import-preview{margin-top:14px}.import-preview p{color:var(--gray);margin:0 0 10px}.import-preview div{overflow:auto}.import-preview table{border-collapse:collapse;width:100%}.import-preview td{border:1px solid var(--line);padding:7px 9px}.modal-backdrop{align-items:center;background:#09122275;display:flex;inset:0;justify-content:center;padding:20px;position:fixed;z-index:10}.editor{background:#fff;border-radius:8px;box-shadow:0 22px 70px #00000047;display:grid;gap:14px;max-width:480px;padding:18px;width:min(100%,480px)}.editor-head{align-items:start;display:flex;justify-content:space-between}.editor-head p{color:var(--gray);margin:0 0 4px}.editor-head h2{color:var(--blue);font-size:22px;margin:0}.ghost{background:#eef3f7;color:var(--blue);justify-content:center}.icon-ghost{background:#eef3f7;color:var(--blue);justify-content:center;min-height:36px;padding:0;width:36px}.wide{width:100%}.editor-actions{display:grid;gap:8px;grid-template-columns:1.2fr .9fr .9fr}.history{border-top:1px solid var(--line);display:grid;gap:7px;padding-top:12px}.history h3{align-items:center;color:var(--blue);display:flex;font-size:15px;gap:7px;margin:0}.history p,.history span{color:var(--gray);font-size:13px;margin:0}@media(max-width:980px){.workspace{grid-template-columns:1fr}.sidebar{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.schedule-frame{max-height:70vh}.day-overview{grid-template-columns:1fr}}@media(max-width:680px){.topbar,.toolbar{align-items:stretch;flex-direction:column}.workspace{padding:12px}.sidebar{grid-template-columns:1fr}.actions{justify-content:stretch}.actions a,.upload{justify-content:center;flex:1}.editor-actions{grid-template-columns:1fr}}
