:root{color:#172033;background:#f6f7fb;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{margin:0}button,input,textarea,select{font:inherit}button{cursor:pointer;background:#fff;border:1px solid #c8d0df;border-radius:10px;padding:.55rem .8rem}button.primary,.primary{color:#fff;background:#172033;border-color:#172033}button.active,.tab-row .active{background:#dfe7ff;border-color:#91a7ff}input,textarea,select{background:#fff;border:1px solid #c8d0df;border-radius:10px;width:100%;padding:.65rem}textarea{resize:vertical;min-height:90px}table{border-collapse:collapse;width:100%}th,td{text-align:left;vertical-align:top;border-bottom:1px solid #e4e8f0;padding:.65rem}.muted{color:#6a7284}.error{background:#ffe7e7;border:1px solid #ffb2b2;border-radius:10px;padding:.7rem}.notice{background:#eef6ff;border:1px solid #b8d7ff;border-radius:10px;margin-bottom:1rem;padding:.7rem}.loading{padding:2rem}.auth-page{place-items:center;min-height:100vh;padding:2rem;display:grid}.auth-card{background:#fff;border:1px solid #e3e7ef;border-radius:22px;gap:1rem;width:min(460px,100%);padding:2rem;display:grid;box-shadow:0 18px 60px #17203314}.tab-row,.toolbar,.quick-actions,.inline-form,.checkbox-row{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.app-shell{min-height:100vh;display:flex}.sidebar{color:#fff;background:#111827;flex:none;width:260px;transition:width .2s,transform .2s;overflow:hidden}.sidebar.closed{width:0}.brand{white-space:nowrap;border-bottom:1px solid #ffffff1a;justify-content:space-between;align-items:center;gap:.75rem;padding:1.1rem;font-weight:700;display:flex}.sidebar-close,.sidebar-backdrop{display:none}.sidebar nav{gap:.2rem;padding:.8rem;display:grid}.sidebar button{color:#fff;text-align:left;white-space:nowrap;background:0 0;border:0}.sidebar button.active,.sidebar button:hover{background:#ffffff1f}.main-panel{flex:1;min-width:0}.topbar{z-index:10;background:#fff;border-bottom:1px solid #e3e7ef;justify-content:space-between;align-items:center;gap:1rem;height:64px;padding:0 1rem;display:flex;position:sticky;top:0}.menu-button{width:auto}.page{gap:1rem;padding:1rem;display:grid}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.page-header h1{margin:0}.card,.object-card,.stat-card{background:#fff;border:1px solid #e3e7ef;border-radius:18px;padding:1rem;box-shadow:0 6px 18px #1720330a}.card h2,.object-card h3{margin-top:0}.dashboard-grid{grid-template-columns:2fr 1fr;gap:1rem;display:grid}.wide{grid-row:span 2}.two-column{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:1rem;display:grid}.form-card{gap:.75rem;display:grid}.grid-fields{grid-template-columns:1fr 1fr;gap:.75rem;display:grid}.slider-field{gap:.4rem;display:grid}.slider-label{justify-content:space-between;align-items:center;gap:1rem;display:flex}.slider-label strong{font-size:1.05rem}.slider-field input[type=range]{background:0 0;border:0;width:100%;min-height:32px;padding:0}.slider-field button{justify-self:start}.object-grid,.stats-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;display:grid}.object-card{gap:.4rem;display:grid}.dense-list{gap:.5rem;margin:0;padding:0;list-style:none;display:grid}.dense-list li{border-bottom:1px solid #edf0f5;justify-content:space-between;gap:1rem;padding-bottom:.5rem;display:flex}.table-actions{flex-wrap:wrap;gap:.5rem;display:flex}.prerequisite-picker{gap:.5rem;display:grid}.prerequisite-controls{align-items:center;gap:.5rem;display:flex}.chip-row{flex-wrap:wrap;align-items:center;gap:.5rem;min-height:2.25rem;display:flex}.chip{color:#172033;background:#f4f7ff;border:1px solid #cad6ef;border-radius:999px;align-items:center;gap:.45rem;max-width:100%;padding:.35rem .45rem .35rem .7rem;display:inline-flex}.chip button{border-color:#aebce0;border-radius:999px;place-items:center;width:1.5rem;height:1.5rem;padding:0;line-height:1;display:inline-grid}.stat-card{gap:.3rem;display:grid}.stat-card strong{font-size:2rem}.calendar-grid{grid-template-columns:72px repeat(var(--calendar-day-count), minmax(150px, 1fr));background:#fff;border:1px solid #e3e7ef;border-radius:16px;grid-template-rows:auto auto;align-items:start;display:grid;overflow:auto}.calendar-grid.day{grid-template-columns:72px minmax(240px,1fr)}.calendar-corner,.calendar-day-head{border-bottom:1px solid #edf0f5;border-right:1px solid #edf0f5;min-height:48px}.calendar-corner{background:#f9fbff;grid-area:1/1}.calendar-day-head{z-index:3;background:#f9fbff;border-radius:0;grid-row:1;font-weight:700;position:sticky;top:0}.calendar-time-column{grid-area:2/1;grid-template-rows:repeat(var(--calendar-hour-count), var(--calendar-hour-height));display:grid}.calendar-hour{height:var(--calendar-hour-height);color:#697386;background:#f9fbff;border-bottom:1px solid #edf0f5;border-right:1px solid #edf0f5;padding:.5rem}.calendar-day-column{grid-row:2;grid-template-rows:repeat(var(--calendar-hour-count), var(--calendar-hour-height));min-width:150px;height:calc(var(--calendar-hour-height) * var(--calendar-hour-count));border-right:1px solid #edf0f5;display:grid;position:relative}.calendar-cell{min-height:var(--calendar-hour-height);border-bottom:1px solid #edf0f5}.calendar-now-line{top:var(--now-top);z-index:5;pointer-events:none;border-top:2px dashed #3c77ff94;position:absolute;left:0;right:0}.calendar-now-line:before{content:"";background:#3c77ffb8;border-radius:999px;width:8px;height:8px;position:absolute;top:-4px;left:-4px}.calendar-sleep-layer{pointer-events:none;position:absolute;inset:0}.calendar-sleep-block{top:var(--sleep-top);height:var(--sleep-height);color:#e5e7eb;opacity:.88;letter-spacing:.04em;text-transform:uppercase;background:#1f2937;place-items:center;font-size:.8rem;font-weight:700;display:grid;position:absolute;left:0;right:0}.calendar-event-layer{pointer-events:none;position:absolute;inset:0}.calendar-card{top:var(--event-top);height:var(--event-height);left:calc(var(--event-left,0%) + .25rem);width:calc(var(--event-width,100%) - .5rem);touch-action:none;pointer-events:auto;background:#f7f9ff;border:1px solid #b8c6e8;border-left:4px solid #5269b1;border-radius:12px;align-content:start;gap:.2rem;padding:.45rem;font-size:.85rem;display:grid;position:absolute;overflow:hidden}.calendar-card.has-timer{padding-right:2.2rem}.calendar-card.action-open{z-index:8;overflow:visible}.calendar-project-name{color:#485266;text-overflow:ellipsis;white-space:nowrap;font-size:.78rem;line-height:1.15;overflow:hidden}.calendar-timer-button{background:#fff;border-color:#aebce0;border-radius:999px;place-items:center;width:1.55rem;height:1.55rem;padding:0;font-size:.9rem;line-height:1;display:inline-grid;position:absolute;top:.3rem;right:.3rem}.calendar-timer-button.active{color:#fff;background:#172033;border-color:#172033}.calendar-timer-button:disabled{opacity:.45;cursor:not-allowed}.calendar-task-actions{z-index:9;background:#fff;border:1px solid #d7deec;border-radius:10px;gap:.35rem;padding:.35rem;display:flex;position:absolute;top:calc(100% + .25rem);left:.25rem;box-shadow:0 12px 28px #17203329}.calendar-task-actions button{border-radius:8px;padding:.35rem .55rem}.calendar-move-action{display:none}.calendar-move-banner{background:#eef6ff;border:1px solid #b8d7ff;border-radius:10px;justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.6rem;padding:.65rem .75rem;display:flex}.calendar-card.meeting{background:#fff8f7;border-left-color:#934c4c}.calendar-card.manual{background:#fafafa;border-left-color:#6d6d6d}.calendar-card.parallel{border-style:dashed}.calendar-card.fixed small:after{content:" "}.modal-backdrop{z-index:30;background:#0f172a57;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.modal-card{background:#fff;border:1px solid #dce3ef;border-radius:16px;width:min(560px,100%);max-height:min(760px,100vh - 2rem);padding:1rem;overflow:auto;box-shadow:0 24px 70px #0f172a38}.calendar-expanded-backdrop{z-index:30;background:#0f172a47;place-items:end center;padding:1rem;display:grid;position:fixed;inset:0}.calendar-expanded-card{background:#fff;border:1px solid #dce3ef;border-radius:16px;gap:.75rem;width:min(520px,100%);padding:1rem;display:grid;box-shadow:0 24px 70px #0f172a38}.calendar-expanded-card h2,.calendar-expanded-card p{margin:0}@media (width<=850px){body{overflow-x:hidden}button,input,textarea,select{font-size:16px}button,input,select{min-height:44px}input[type=checkbox]{width:auto;min-height:auto;margin-right:.35rem;transform:scale(1.08)}button{padding:.65rem .85rem}.app-shell{display:block}.sidebar{z-index:25;flex-direction:column;width:min(86vw,300px);display:flex;position:fixed;top:0;bottom:0;left:0;transform:translate(0);box-shadow:12px 0 36px #0f172a47}.sidebar.closed{width:min(86vw,300px);box-shadow:none;transform:translate(-105%)}.sidebar nav{padding-bottom:calc(1rem + env(safe-area-inset-bottom));overflow-y:auto}.sidebar nav button{border-radius:10px;min-height:46px;padding:.75rem .85rem}.sidebar-close{color:#fff;background:#ffffff14;border:1px solid #fff3;border-radius:999px;place-items:center;width:2.4rem;height:2.4rem;min-height:2.4rem;padding:0;display:inline-grid}.sidebar-backdrop{z-index:24;background:#0f172a5c;border:0;border-radius:0;width:100%;min-height:100%;padding:0;display:block;position:fixed;inset:0}.main-panel{width:100%}.dashboard-grid,.two-column,.grid-fields{grid-template-columns:1fr}.page{gap:.85rem;padding:.75rem}.card,.object-card,.stat-card{border-radius:12px;padding:.85rem}.topbar{grid-template-columns:auto minmax(0,1fr);align-items:center;gap:.55rem;height:auto;min-height:60px;padding:.45rem .65rem;display:grid}.menu-button{z-index:12;min-width:4.7rem;position:relative}.topbar-user{min-width:0}.topbar-user strong{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.topbar-user .muted{display:none}.topbar-actions{grid-column:1/-1;grid-template-columns:1fr 1fr;gap:.5rem;width:100%;display:grid}.page-header{align-items:stretch}.page-header h1,.page-header h2{width:100%}.toolbar,.quick-actions,.inline-form,.checkbox-row{gap:.5rem}.toolbar>button,.quick-actions>button,.inline-form>button{flex:auto}.toolbar input[type=date]{flex:11rem}.inline-form{grid-template-columns:1fr;align-items:stretch;display:grid}.prerequisite-controls{grid-template-columns:1fr;display:grid}.dense-list li{gap:.25rem;display:grid}.table-actions{grid-template-columns:repeat(auto-fit,minmax(7rem,1fr));display:grid}.card:has(table){overflow-x:auto}table{min-width:620px}.object-grid,.stats-grid{grid-template-columns:1fr}.calendar-grid{grid-template-columns:68px repeat(var(--calendar-day-count), minmax(190px, 1fr))}.calendar-grid.day{grid-template-columns:68px minmax(260px,1fr)}.calendar-grid{-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;border-radius:12px}.calendar-day-head{min-height:46px;padding:.45rem .35rem}.calendar-hour{padding:.45rem .35rem;font-size:.86rem}.calendar-card{padding:.65rem;font-size:.95rem}.calendar-project-name{font-size:.82rem}.calendar-timer-button{width:2rem;height:2rem;min-height:2rem}.calendar-task-actions{flex-direction:column;gap:.4rem;min-width:min(14rem,78vw);left:0;right:auto}.calendar-task-actions button{text-align:center;min-height:40px}.calendar-move-action{justify-content:center;display:inline-flex}.calendar-move-banner{top:calc(60px + env(safe-area-inset-top));z-index:8;flex-direction:column;align-items:stretch;position:sticky}.calendar-grid.move-mode .calendar-cell{cursor:pointer;background-image:linear-gradient(135deg,#5269b114 25%,#0000 25% 50%,#5269b114 50% 75%,#0000 75%,#0000);background-size:18px 18px}.modal-backdrop{place-items:end center;padding:.5rem}.modal-card{border-radius:14px 14px 0 0;width:100%;max-height:calc(100vh - 1rem);padding:.85rem}.auth-page{align-content:center;place-items:stretch stretch;padding:1rem}.auth-card{border-radius:16px;padding:1rem}}@media (width<=480px){.page{padding:.6rem}.quick-actions{grid-template-columns:1fr 1fr;display:grid}.toolbar{width:100%}.calendar-grid{grid-template-columns:58px repeat(var(--calendar-day-count), minmax(170px, 1fr))}.calendar-grid.day{grid-template-columns:58px minmax(230px,1fr)}.calendar-card{padding:.5rem;font-size:.88rem}.calendar-card.has-timer{padding-right:2.1rem}.calendar-card small{display:none}.calendar-project-name{font-size:.74rem}.calendar-timer-button{width:1.9rem;height:1.9rem;min-height:1.9rem;top:.2rem;right:.2rem}table{min-width:560px}}
