#root{min-height:100vh}:root{color:#172033;background:#eef2f7;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{background:radial-gradient(circle at 0 0,#5677ff2e,#0000 30%),#eef2f7;min-width:320px;min-height:100vh;margin:0}button,input,textarea,select{font:inherit}button{color:#fff;cursor:pointer;background:#3157ff;border:0;border-radius:12px;padding:12px 16px;font-weight:700}button:disabled{opacity:.65;cursor:not-allowed}input,textarea,select{color:#172033;background:#fff;border:1px solid #d4dbea;border-radius:12px;outline:none;width:100%;padding:12px 14px}input:focus,textarea:focus,select:focus{border-color:#3157ff;box-shadow:0 0 0 3px #3157ff1f}a{color:#3157ff;font-weight:700;text-decoration:none}.auth-page{place-items:center;min-height:100vh;padding:24px;display:grid}.card{background:#ffffffeb;border:1px solid #d4dbeae6;border-radius:24px;padding:28px;box-shadow:0 18px 60px #1a26481f}.auth-card{width:min(440px,100%)}.form{gap:16px;display:grid}.form label{gap:8px;font-weight:700;display:grid}.muted{color:#68758d}.error{color:#d72d2d;background:#fff0f0;border-radius:12px;padding:12px 14px;font-weight:700}.auth-link{text-align:center;margin-top:20px}.page{width:min(1360px,100% - 32px);margin:0 auto;padding:32px 0}.topbar{justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px;display:flex}.topbar h1{margin:0}.header-actions{align-items:center;gap:12px;display:flex}.user-icon-button{color:#3157ff;background:#fff;border:1px solid #cbd3e2;border-radius:50%;place-items:center;width:44px;height:44px;min-height:0;padding:0;display:grid;box-shadow:0 6px 18px #1a26481a}.user-icon-button:hover{background:#eef2ff;border-color:#3157ff}.user-icon-button svg{fill:currentColor;width:23px;height:23px}.user-profile-modal{width:min(620px,100%)}.user-profile-summary{background:#f8faff;border:1px solid #dde4f0;border-radius:18px;grid-template-columns:auto 1fr;align-items:center;gap:20px;padding:18px;display:grid}.user-profile-avatar{color:#fff;background:linear-gradient(145deg,#3157ff,#6c85ff);border-radius:50%;place-items:center;width:64px;height:64px;font-size:26px;font-weight:900;display:grid}.user-profile-details{gap:9px;margin:0;display:grid}.user-profile-details div{grid-template-columns:64px minmax(0,1fr);gap:10px;display:grid}.user-profile-details dt{color:#68758d;font-size:13px;font-weight:800}.user-profile-details dd{overflow-wrap:anywhere;min-width:0;margin:0;font-weight:700}.password-change-form{border-top:1px solid #e1e6f0;margin-top:24px;padding-top:22px}.password-change-heading h4,.password-change-heading p{margin:0}.password-change-heading p{margin-top:6px;font-size:13px}.password-requirements{color:#78859a;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px 12px;margin:-5px 0 0;padding:0;font-size:12px;font-weight:700;list-style:none;display:grid}.password-requirements li{align-items:center;gap:6px;display:flex}.password-requirements li.satisfied{color:#1f8f4e}.success-message{color:#18713d;background:#e9f8ef;border-radius:12px;padding:12px 14px;font-weight:800}.nav-link{background:#fff;border:1px solid #d4dbea;border-radius:12px;padding:10px 14px}.menu{gap:12px;margin-bottom:24px;display:flex}.menu a{color:#fff;background:#172033;border-radius:999px;padding:10px 16px}.grid{grid-template-columns:420px 1fr;align-items:start;gap:24px;display:grid}.wide-card{min-height:360px}.secondary-button{background:#172033}.danger-button{background:#e5484d;padding:10px 12px}.button-row{align-items:center;gap:10px;display:flex}.button-row.compact{margin-top:12px}.post-list{gap:14px;display:grid}.post-item{background:#fafcff;border:1px solid #e1e6f0;border-radius:18px;padding:16px}.link-button{color:#172033;text-align:left;background:0 0;border-radius:0;padding:0;font-size:20px}.link-button:hover{color:#3157ff}.post-meta{color:#7a879c;margin-top:8px;font-size:14px}.detail-box{border-top:1px solid #e1e6f0;margin-top:22px;padding-top:20px}.detail-box h3{margin-top:0}.detail-box p{white-space:pre-wrap;line-height:1.7}.page-action-header{justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px;display:flex}.page-action-header h2{margin:0}@media (width<=860px){.topbar{flex-direction:column;align-items:flex-start}.grid{grid-template-columns:1fr}.header-actions,.menu{flex-wrap:wrap}.page-action-header{flex-direction:column;align-items:stretch}}.calendar-grid{grid-template-columns:minmax(760px,1fr) 420px}.calendar-grid-full{grid-template-columns:1fr}.calendar-view-header{justify-content:space-between;align-items:center;gap:20px;margin-bottom:22px;display:flex}.calendar-view-header h2,.calendar-view-header p{margin:0}.calendar-view-header p{margin-top:6px}.calendar-readonly-badge{color:#52617a;background:#eef2f8;border:1px solid #b9c5d8;border-radius:999px;flex:none;padding:7px 12px;font-size:12px;font-weight:800}.calendar-header{justify-content:space-between;align-items:center;gap:16px;display:flex}.calendar-toolbar{justify-content:flex-end;margin-bottom:18px;display:flex}.calendar-header h2{margin:0}.calendar-weekdays{color:#68758d;text-align:center;grid-template-columns:repeat(7,1fr);gap:8px;margin-top:24px;margin-bottom:8px;font-weight:800;display:grid}.calendar-board{grid-template-columns:repeat(7,1fr);gap:10px;display:grid}.calendar-day{color:#172033;text-align:left;background:#fff;border:1px solid #e1e6f0;border-radius:16px;flex-direction:column;justify-content:flex-start;gap:8px;min-height:112px;padding:10px;display:flex;overflow:hidden}.calendar-day.empty{cursor:default;background:0 0;border:0}.calendar-day.selected{border-color:#3157ff;box-shadow:0 0 0 3px #3157ff1f}.calendar-day-schedules{gap:4px;width:100%;min-width:0;display:grid}.calendar-day-schedules>small{color:#fff;text-overflow:ellipsis;white-space:nowrap;background:#3157ff;border-radius:999px;min-width:0;max-width:100%;padding:3px 7px;font-size:11px;line-height:1.25;display:block;overflow:hidden}.calendar-schedule-chip{color:#23314a;text-align:left;cursor:pointer;background:#e7ecf5;border:0;border-radius:9px;gap:2px;width:100%;min-width:0;padding:5px 7px;display:grid;overflow:hidden}.calendar-schedule-chip small,.calendar-schedule-chip strong{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.calendar-schedule-chip small{opacity:.72;font-size:9px}.calendar-schedule-chip strong{font-size:11px}.calendar-task-waiting{color:#4b5667;background:#e2e6ec}.calendar-task-in_progress{color:#2459b5;background:#d9e6ff}.calendar-task-review{color:#79580d;background:#f8e7b9}.calendar-task-completed{color:#28733e;background:#d8eddc}.calendar-schedule-chip:hover{filter:brightness(.94)}.schedule-item{background:#fafcff;border:1px solid #e1e6f0;border-radius:16px;margin-top:12px;padding:14px}.schedule-item p{white-space:pre-wrap;line-height:1.6}.calendar-task-detail p{margin:10px 0}.schedule-modal-backdrop{z-index:1000;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0f172a73;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.schedule-modal{width:min(520px,100%);max-height:min(720px,100vh - 48px);overflow:auto}.schedule-modal-header{justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px;display:flex}.schedule-modal-header h3{margin:0}.modal-close-button{padding:10px 12px}.modal-schedule-item{margin-top:0}.kanban-page{gap:20px;display:grid}.kanban-page-header{justify-content:space-between;align-items:flex-start;gap:20px;display:flex}.kanban-page-header h2,.kanban-page-header p{margin-top:0}.kanban-page-header p,.kanban-error{margin-bottom:0}.kanban-board{grid-template-columns:repeat(4,minmax(240px,1fr));align-items:start;gap:20px;display:grid}.kanban-column{border:1px solid #0000;border-radius:24px;min-height:560px;padding:18px;transition:transform .16s,box-shadow .16s,border-color .16s}.kanban-column.waiting{background:#eef1f5;border-color:#d4dae3}.kanban-column.progress{background:#eaf1ff;border-color:#bfd2ff}.kanban-column.review{background:#fff6df;border-color:#f0d38d}.kanban-column.completed{background:#eaf8ef;border-color:#bce3c8}.kanban-column.drag-over{border-color:#3157ff;transform:translateY(-3px);box-shadow:0 16px 36px #3157ff2e}.kanban-column-header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.kanban-column-header h3{margin:0}.kanban-column-header span{background:#1720331a;border-radius:999px;place-items:center;min-width:30px;height:30px;font-weight:800;display:grid}.kanban-card-list{gap:14px;display:grid}.kanban-empty{color:#68758d;text-align:center;border:2px dashed #68758d52;border-radius:18px;place-items:center;min-height:130px;padding:18px;display:grid}.kanban-card{cursor:grab;background:#fff;border:1px solid #d4dbeaf2;border-radius:18px;padding:18px;transition:transform .15s,box-shadow .15s,opacity .15s;box-shadow:0 10px 24px #1a264817}.kanban-card-waiting{background:linear-gradient(145deg,#fff 0%,#edf0f4 100%);border-color:#b9c1cc #b9c1cc #b9c1cc #7a8493;border-left-style:solid;border-left-width:6px}.kanban-card-in_progress{background:linear-gradient(145deg,#fff 0%,#e3edff 100%);border-color:#8fb0f5 #8fb0f5 #8fb0f5 #3974dc;border-left-style:solid;border-left-width:6px}.kanban-card-review{background:linear-gradient(145deg,#fff 0%,#fff0c8 100%);border-color:#d9b85f #d9b85f #d9b85f #c28a11;border-left-style:solid;border-left-width:6px}.kanban-card-completed{background:linear-gradient(145deg,#fff 0%,#e0f4e6 100%);border-color:#8ac39a #8ac39a #8ac39a #2f9650;border-left-style:solid;border-left-width:6px}.kanban-card-waiting .kanban-card-schedule{color:#4c5665;background:#e1e5ea}.kanban-card-in_progress .kanban-card-schedule{color:#2459b5;background:#d7e5ff}.kanban-card-review .kanban-card-schedule{color:#805c0b;background:#f8e2aa}.kanban-card-completed .kanban-card-schedule{color:#23763c;background:#d3edda}.kanban-card:hover{transform:translateY(-2px);box-shadow:0 14px 30px #1a264824}.kanban-card.dragging{opacity:.45;cursor:grabbing}.kanban-card h4{margin:12px 0 0;font-size:18px}.kanban-project-badge{color:#52627b;text-overflow:ellipsis;white-space:nowrap;background:#ffffffb8;border:1px solid #c7d2e5;border-radius:999px;max-width:100%;padding:5px 10px;font-size:12px;font-weight:800;display:inline-flex;overflow:hidden}.kanban-card-schedule{color:#26334b;text-align:center;background:#f4f6fa;border-radius:12px;margin-top:16px;padding:9px 12px;font-weight:800}.kanban-card-schedule span{opacity:.72;margin-bottom:4px;font-size:11px;display:block}.kanban-card-schedule strong{font-size:13px;display:block}.kanban-weekend-options{flex-wrap:wrap;align-items:center;gap:18px;display:flex}.kanban-weekend-option{cursor:pointer;align-items:center;gap:10px;width:fit-content;font-weight:800;display:flex}.kanban-weekend-option input{accent-color:#3157ff;width:18px;height:18px;margin:0}.kanban-weekend-help{margin:-6px 0 0;font-size:12px}.kanban-modal-backdrop{z-index:1100;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0f172a7a;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.kanban-modal{width:min(560px,100%);max-height:calc(100vh - 48px);overflow:auto}.kanban-modal-header{justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px;display:flex}.kanban-modal-header h3{margin:0}.kanban-schedule-fields{grid-template-columns:1fr 1fr;gap:14px;display:grid}.kanban-header-actions{flex-wrap:wrap;gap:10px;display:flex}.project-selector-card{justify-content:space-between;align-items:flex-start;gap:24px;padding:18px 22px;display:flex}.project-selector-control{gap:8px;min-width:min(420px,100%);font-weight:800;display:grid}.selected-project-summary{flex:1;gap:8px;min-width:0;display:grid}.selected-project-label{color:#52627b;font-size:12px;font-weight:800}.selected-project-chips{flex-wrap:wrap;gap:8px;display:flex}.selected-project-chip{color:#31507d;min-height:0;box-shadow:none;background:#fff;border:1px solid #c7d2e5;border-radius:999px;padding:5px 11px;font-size:12px;font-weight:700;line-height:1.25}button.selected-project-chip:hover{color:#284a7b;background:#edf3ff;border-color:#8fa9d4}.project-selection-description{font-size:12px}.project-selector-card p{color:#68758d;margin:0}.kanban-no-project{text-align:center}.project-modal{width:min(700px,100%)}.project-list{border-top:1px solid #e1e6f0;gap:10px;margin-top:24px;padding-top:20px;display:grid}.project-list-item{background:#fafcff;border:1px solid #e1e6f0;border-radius:16px;justify-content:space-between;align-items:center;gap:16px;padding:14px;display:flex}.project-list-item p{color:#68758d;margin:5px 0 0}.kanban-modal-header p{margin:5px 0 0}.kanban-modal-actions{flex-wrap:wrap}.kanban-approve-button{background:#1f8f4e}.kanban-approve-button:hover{background:#18713d}.kanban-default-status{color:#4e5b70;background:#eef1f5;border-radius:12px;margin:0;padding:10px 12px;font-weight:700}@media (width<=980px){.kanban-board{grid-template-columns:1fr}.kanban-column{min-height:280px}}@media (width<=560px){.kanban-page-header{flex-direction:column}.kanban-schedule-fields{grid-template-columns:1fr}.project-selector-card,.project-list-item{flex-direction:column;align-items:stretch}.user-profile-summary{text-align:center;grid-template-columns:1fr;justify-items:center}.user-profile-details{text-align:left;width:100%}.password-requirements{grid-template-columns:1fr}}@media (width<=860px){.calendar-grid{grid-template-columns:1fr}.calendar-view-header{flex-direction:column;align-items:flex-start}.calendar-day{min-height:64px;padding:8px}}.theme-toggle{color:#172033;background:#ffffffeb;border:1px solid #cbd3e2;box-shadow:0 6px 18px #1a264814}body,.card,input,textarea,select,.nav-link,.post-item,.calendar-day,.schedule-item,.kanban-column,.kanban-card,.theme-toggle,.user-icon-button{transition:background-color .18s,color .18s,border-color .18s,box-shadow .18s}:root[data-theme=dark]{color:#e7ecf5;background:#0d1422}:root[data-theme=dark] body{color:#e7ecf5;background:radial-gradient(circle at 0 0,#435ecd3d,#0000 34%),#0d1422}:root[data-theme=dark] .card{background:#151e2ff0;border-color:#2d3b53;box-shadow:0 18px 60px #0000004d}:root[data-theme=dark] input,:root[data-theme=dark] textarea,:root[data-theme=dark] select{color:#eef3fb;background:#101a2b;border-color:#394962}:root[data-theme=dark] input::placeholder,:root[data-theme=dark] textarea::placeholder{color:#7f8da5}:root[data-theme=dark] .muted,:root[data-theme=dark] .post-meta,:root[data-theme=dark] .calendar-weekdays{color:#9ba8bd}:root[data-theme=dark] .theme-toggle,:root[data-theme=dark] .nav-link,:root[data-theme=dark] .user-icon-button{color:#f1f5fb;background:#1b2840;border-color:#3b4b66}:root[data-theme=dark] .user-icon-button:hover{background:#223454;border-color:#6686ff}:root[data-theme=dark] .user-profile-summary{background:#121d2f;border-color:#33435d}:root[data-theme=dark] .user-profile-details dt,:root[data-theme=dark] .password-requirements{color:#9ba8bd}:root[data-theme=dark] .password-requirements li.satisfied{color:#75d89b}:root[data-theme=dark] .password-change-form{border-color:#30405a}:root[data-theme=dark] .success-message{color:#9be0b5;background:#173725}:root[data-theme=dark] .secondary-button,:root[data-theme=dark] .menu a{color:#f4f7fc;background:#263651}:root[data-theme=dark] .post-item,:root[data-theme=dark] .schedule-item{background:#121d2f;border-color:#30405a}:root[data-theme=dark] .link-button{color:#e7ecf5}:root[data-theme=dark] .detail-box{border-color:#30405a}:root[data-theme=dark] .calendar-day{color:#edf2fa;background:#121d2f;border-color:#30405a}:root[data-theme=dark] .calendar-day.empty{background:0 0}:root[data-theme=dark] .calendar-readonly-badge{color:#c1ccdc;background:#202b3c;border-color:#46556d}:root[data-theme=dark] .calendar-task-waiting{color:#d2d9e5;background:#333f50}:root[data-theme=dark] .calendar-task-in_progress{color:#d4e3ff;background:#244778}:root[data-theme=dark] .calendar-task-review{color:#f5dda2;background:#59451c}:root[data-theme=dark] .calendar-task-completed{color:#d1f0da;background:#28583a}:root[data-theme=dark] .error{color:#ff9ca8;background:#3a1d25}:root[data-theme=dark] .kanban-project-badge{color:#c7d2e4;background:#0f192ab8;border-color:#53627a}:root[data-theme=dark] .selected-project-label{color:#aab7ca}:root[data-theme=dark] .selected-project-chip{color:#d2dceb;background:#1d293a;border-color:#53627a}:root[data-theme=dark] button.selected-project-chip:hover{color:#eef4ff;background:#26364d;border-color:#7184a2}:root[data-theme=dark] .kanban-column.waiting{background:#202936;border-color:#3d495b}:root[data-theme=dark] .kanban-column.progress{background:#162644;border-color:#31548a}:root[data-theme=dark] .kanban-column.review{background:#3b3017;border-color:#735a22}:root[data-theme=dark] .kanban-column.completed{background:#183426;border-color:#346747}:root[data-theme=dark] .kanban-card-waiting{background:linear-gradient(145deg,#263140 0%,#1c2531 100%);border-color:#566274}:root[data-theme=dark] .kanban-card-in_progress{background:linear-gradient(145deg,#1d365f 0%,#162945 100%);border-color:#4776bd}:root[data-theme=dark] .kanban-card-review{background:linear-gradient(145deg,#4c3d1a 0%,#352b17 100%);border-color:#9a772b}:root[data-theme=dark] .kanban-card-completed{background:linear-gradient(145deg,#214b31 0%,#183824 100%);border-color:#4f9365}:root[data-theme=dark] .kanban-card-waiting .kanban-card-schedule{color:#d2d9e5;background:#333f50}:root[data-theme=dark] .kanban-card-in_progress .kanban-card-schedule{color:#d4e3ff;background:#244778}:root[data-theme=dark] .kanban-card-review .kanban-card-schedule{color:#f5dda2;background:#59451c}:root[data-theme=dark] .kanban-card-completed .kanban-card-schedule{color:#d1f0da;background:#28583a}:root[data-theme=dark] .kanban-default-status{color:#b9c5d7;background:#202b3c}:root[data-theme=dark] .kanban-empty{color:#91a0b5;border-color:#526077}:root[data-theme=dark] .project-selector-card p,:root[data-theme=dark] .project-list-item p{color:#9ba8bd}:root[data-theme=dark] .project-list{border-color:#30405a}:root[data-theme=dark] .project-list-item{background:#121d2f;border-color:#30405a}
