@font-face{font-family:Onest Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/onest-cyrillic-ext-wght-normal-DOFToQv1.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Onest Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/onest-cyrillic-wght-normal-DayYxulF.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Onest Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/onest-math-wght-normal-Bl4ZGkZl.woff2) format("woff2-variations");unicode-range:U+0302-0303,U+0305,U+0307-0308,U+0310,U+0312,U+0315,U+031A,U+0326-0327,U+032C,U+032F-0330,U+0332-0333,U+0338,U+033A,U+0346,U+034D,U+0391-03A1,U+03A3-03A9,U+03B1-03C9,U+03D1,U+03D5-03D6,U+03F0-03F1,U+03F4-03F5,U+2016-2017,U+2034-2038,U+203C,U+2040,U+2043,U+2047,U+2050,U+2057,U+205F,U+2070-2071,U+2074-208E,U+2090-209C,U+20D0-20DC,U+20E1,U+20E5-20EF,U+2100-2112,U+2114-2115,U+2117-2121,U+2123-214F,U+2190,U+2192,U+2194-21AE,U+21B0-21E5,U+21F1-21F2,U+21F4-2211,U+2213-2214,U+2216-22FF,U+2308-230B,U+2310,U+2319,U+231C-2321,U+2336-237A,U+237C,U+2395,U+239B-23B7,U+23D0,U+23DC-23E1,U+2474-2475,U+25AF,U+25B3,U+25B7,U+25BD,U+25C1,U+25CA,U+25CC,U+25FB,U+266D-266F,U+27C0-27FF,U+2900-2AFF,U+2B0E-2B11,U+2B30-2B4C,U+2BFE,U+3030,U+FF5B,U+FF5D,U+1D400-1D7FF,U+1EE00-1EEFF}@font-face{font-family:Onest Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/onest-symbols-wght-normal-DxQzqQfC.woff2) format("woff2-variations");unicode-range:U+0001-000C,U+000E-001F,U+007F-009F,U+20DD-20E0,U+20E2-20E4,U+2150-218F,U+2190,U+2192,U+2194-2199,U+21AF,U+21E6-21F0,U+21F3,U+2218-2219,U+2299,U+22C4-22C6,U+2300-243F,U+2440-244A,U+2460-24FF,U+25A0-27BF,U+2800-28FF,U+2921-2922,U+2981,U+29BF,U+29EB,U+2B00-2BFF,U+4DC0-4DFF,U+FFF9-FFFB,U+10140-1018E,U+10190-1019C,U+101A0,U+101D0-101FD,U+102E0-102FB,U+10E60-10E7E,U+1D2C0-1D2D3,U+1D2E0-1D37F,U+1F000-1F0FF,U+1F100-1F1AD,U+1F1E6-1F1FF,U+1F30D-1F30F,U+1F315,U+1F31C,U+1F31E,U+1F320-1F32C,U+1F336,U+1F378,U+1F37D,U+1F382,U+1F393-1F39F,U+1F3A7-1F3A8,U+1F3AC-1F3AF,U+1F3C2,U+1F3C4-1F3C6,U+1F3CA-1F3CE,U+1F3D4-1F3E0,U+1F3ED,U+1F3F1-1F3F3,U+1F3F5-1F3F7,U+1F408,U+1F415,U+1F41F,U+1F426,U+1F43F,U+1F441-1F442,U+1F444,U+1F446-1F449,U+1F44C-1F44E,U+1F453,U+1F46A,U+1F47D,U+1F4A3,U+1F4B0,U+1F4B3,U+1F4B9,U+1F4BB,U+1F4BF,U+1F4C8-1F4CB,U+1F4D6,U+1F4DA,U+1F4DF,U+1F4E3-1F4E6,U+1F4EA-1F4ED,U+1F4F7,U+1F4F9-1F4FB,U+1F4FD-1F4FE,U+1F503,U+1F507-1F50B,U+1F50D,U+1F512-1F513,U+1F53E-1F54A,U+1F54F-1F5FA,U+1F610,U+1F650-1F67F,U+1F687,U+1F68D,U+1F691,U+1F694,U+1F698,U+1F6AD,U+1F6B2,U+1F6B9-1F6BA,U+1F6BC,U+1F6C6-1F6CF,U+1F6D3-1F6D7,U+1F6E0-1F6EA,U+1F6F0-1F6F3,U+1F6F7-1F6FC,U+1F700-1F7FF,U+1F800-1F80B,U+1F810-1F847,U+1F850-1F859,U+1F860-1F887,U+1F890-1F8AD,U+1F8B0-1F8BB,U+1F8C0-1F8C1,U+1F900-1F90B,U+1F93B,U+1F946,U+1F984,U+1F996,U+1F9E9,U+1FA00-1FA6F,U+1FA70-1FA7C,U+1FA80-1FA89,U+1FA8F-1FAC6,U+1FACE-1FADC,U+1FADF-1FAE9,U+1FAF0-1FAF8,U+1FB00-1FBFF}@font-face{font-family:Onest Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/onest-vietnamese-wght-normal-BBxOatbv.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Onest Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/onest-latin-ext-wght-normal-QAhDxQuo.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Onest Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/onest-latin-wght-normal-Dun_Rd-l.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--brand-conifer: #1e5b28;--brand-indigo: #2b264a;--brand-lime: #d6ff1d;--brand-salad: #aadc00;--brand-lilac: #c6adff;--brand-mint: #e0fbcb;--brand-lavender: #ece4ff;--brand-aqua: #e3f4f8;--brand-gray: #f2f2f2;--brand-lemon: #fbea5e;--brand-tangerine: #ffa985;--brand-azure: #bafffc;--color-bg: var(--surface);--color-bg-soft: var(--surface-soft);--color-fg: #2b264a;--color-fg-muted: #5d5979;--color-heading: #1e5b28;--color-accent: #1e5b28;--color-accent-dark: #1e5b28;--color-accent-soft: #e0fbcb;--color-danger: #c8281c;--color-danger-soft: #fdecea;--color-warning: #a35f00;--color-warning-soft: #fff6c9;--series-1: #2e8b3e;--series-2: #8a6af0;--series-3: #e06a35;--series-4: #1f9e9a;--series-5: #b08a08;--series-6: #5b6fd6;--series-7: #7c789a;--series-8: #c8559e;--series-9: #6e9a00;--series-10: #9a97b2}:root{color-scheme:light;--bg-page: #e3f4f8;--surface: #ffffff;--surface-soft: #f3f9fb;--surface-sunken: #ebf5f8;--surface-field: #f8fcfd;--surface-hover: #eff8fa;--surface-muted: #f1f7f9;--surface-off: #e6eff2;--surface-track: #d9e8ee;--surface-footer: #f6fafb;--surface-glass: rgba(255, 255, 255, .7);--header-bg: rgba(255, 255, 255, .94);--login-base: #e3f4f8;--overlay: rgba(43, 38, 74, .5);--weekend-tint: #f5f3fb;--weekend-tint-2: #eeebf7;--weekend-fg: #b04a24;--grid-line: #b9ccd6;--grid-line-soft: #d9e6ec;--cell-line: #b8cbd5;--today-col: rgba(224, 251, 203, .75);--weekend-col: rgba(43, 38, 74, .035);--border-frame: #c3d5dd;--border-frame-strong: #a3b9c4;--border-hover: #6f8d9c;--border-muted: #a3b9c4;--text-label: #433e63;--text-subtle: #6c6888;--text-placeholder: #8582a0;--text-faint: #6c6888;--accent-hover: #164620;--on-accent: #ffffff;--lime: #1e5b28;--lime-hover: #164620;--lime-border: #1e5b28;--on-lime: #ffffff;--heat-text: #2b264a;--heat-text-low: #2b264a;--goal: #e06a35;--goal-text: #9a3e12;--tint-green-bg: #e0fbcb;--tint-green-border: #b6e28f;--tint-green-fg: #1e5b28;--tint-green-faint: #f4fdec;--tint-blue-bg: #ece4ff;--tint-blue-border: #d0c0f8;--tint-blue-fg: #4a3a98;--tint-blue-faint: #f7f3ff;--tint-orange-bg: #ffe9de;--tint-orange-border: #ffc4a8;--tint-orange-fg: #8a3a10;--tint-gray-bg: #f2f2f2;--tint-gray-border: #d9d9de;--tint-gray-fg: #2b264a;--tint-red-border: #f2b5ae;--tint-red-fg: #a3281c;--warning-border: #ecd860;--accent-border: #b6e28f;--info-bg: #f3efff;--info-border: #d4c8f7;--lvl-platform: #2b264a;--lvl-object: #1e5b28;--lvl-system: #6a4fd0;--lvl-category: #b8501d;--on-lvl: #ffffff;--ev-activity: #1e5b28;--ev-activity-bg: #e0fbcb;--ev-activity-bg-hover: #d4f4b8;--ev-task: #8a6af0;--ev-task-bg: #ece4ff;--ev-task-bg-hover: #e0d4ff;--ev-activity-border: #8db886;--ev-task-border: #b4a0f2;--ev-person-border-mix: 45%;--toast-bg: #2b264a;--toast-fg: #ffffff;--toast-error-bg: #8a1f17;--toast-accent: #d6ff1d}*{box-sizing:border-box}html,body{margin:0;padding:0}body{min-width:980px;background:var(--color-bg);color:var(--color-fg);font-family:Segoe UI,-apple-system,BlinkMacSystemFont,Roboto,Helvetica,Arial,sans-serif;font-size:14px;line-height:1.45}#root{min-height:100vh;display:flex;flex-direction:column}h1,h2,h3,h4{margin:0 0 8px;font-weight:600}p{margin:0 0 8px}.muted{color:var(--color-fg-muted)}.error-text{color:var(--color-danger);font-size:13px}.warning-text{color:var(--color-warning);font-size:13px}.app-header{display:flex;align-items:center;justify-content:space-between;padding:0 24px;height:56px;border-bottom:1px solid var(--color-border);background:var(--color-bg);position:sticky;top:0;z-index:20}.app-header__left{display:flex;align-items:center;gap:28px}.app-brand{font-weight:700;font-size:16px;color:var(--color-fg);white-space:nowrap}.app-brand span{color:var(--color-accent)}.app-nav{display:flex;gap:4px}.app-nav a{display:inline-block;padding:8px 14px;border-radius:var(--radius-sm);color:var(--color-fg-muted);text-decoration:none;font-weight:500}.app-nav a:hover{background:var(--color-bg-soft);color:var(--color-fg)}.app-nav a.active{background:var(--color-accent-soft);color:var(--color-accent-dark)}.app-header__right{display:flex;align-items:center;gap:12px}.app-user{display:flex;align-items:center;gap:10px}.app-user__name{font-weight:600}.app-user__role{font-size:12px;color:var(--color-fg-muted);border:1px solid var(--color-border);border-radius:999px;padding:1px 8px}.app-main{flex:1;padding:20px 24px 48px;max-width:1440px;width:100%;margin:0 auto}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid var(--color-border);background:var(--color-bg);color:var(--color-fg);padding:8px 14px;border-radius:var(--radius-sm);font-size:13px;font-weight:600;cursor:pointer;white-space:nowrap}.btn:hover{background:var(--color-bg-soft)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--color-accent);border-color:var(--color-accent);color:var(--on-accent)}.btn-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.btn-danger{background:var(--surface);border-color:var(--color-danger);color:var(--color-danger)}.btn-danger:hover{background:var(--color-danger-soft)}.btn-ghost{border-color:transparent;background:transparent}.btn-ghost:hover{background:var(--color-bg-soft)}.btn-sm{padding:4px 10px;font-size:12px}.icon-btn{border:none;background:transparent;cursor:pointer;color:var(--color-fg-muted);padding:4px 6px;border-radius:var(--radius-sm)}.icon-btn:hover{background:var(--color-bg-soft);color:var(--color-fg)}input[type=text],input[type=password],input[type=date],input[type=time],input[type=datetime-local],input[type=number],input[type=email],input[type=url],select,textarea{font:inherit;color:var(--color-fg);background:var(--surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:7px 10px;width:100%}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-soft)}textarea{resize:vertical;min-height:70px}label{display:block;font-size:12px;font-weight:600;color:var(--color-fg-muted);margin-bottom:4px}.field{margin-bottom:14px}.field-hint{font-size:12px;color:var(--color-fg-muted);margin-top:4px}.form-row{display:flex;gap:14px}.form-row>.field{flex:1;min-width:0}.checkbox-row{display:flex;align-items:center;gap:8px}.checkbox-row input{width:auto}.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;gap:16px;flex-wrap:wrap}.page-title{font-size:20px;margin:0}.toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.toolbar select{width:auto;min-width:160px;max-width:220px;flex:0 0 auto}.card{background:var(--surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:16px}.card+.card{margin-top:12px}.section-title{font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--color-fg-muted);margin-bottom:10px}.section-title-link{border:none;background:none;padding:0;font:inherit;color:var(--color-accent-dark);cursor:pointer;text-decoration:underline;text-decoration-style:dotted;text-underline-offset:2px}.section-title-link:hover{color:var(--color-accent)}.empty-state{padding:32px;text-align:center;color:var(--color-fg-muted);border:1px dashed var(--color-border);border-radius:var(--radius)}.spinner{width:18px;height:18px;border-radius:50%;border:2px solid var(--color-border);border-top-color:var(--color-accent);animation:spin .7s linear infinite;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.center-page{min-height:60vh;display:flex;align-items:center;justify-content:center}.table{width:100%;border-collapse:collapse;font-size:13px}.table th{text-align:left;font-size:11px;text-transform:uppercase;color:var(--color-fg-muted);border-bottom:1px solid var(--color-border);padding:8px 10px;white-space:nowrap}.table td{padding:9px 10px;border-bottom:1px solid var(--color-border);vertical-align:top}.table tr:hover td{background:var(--color-bg-soft)}.badge{display:inline-block;font-size:11px;font-weight:700;padding:2px 9px;border-radius:999px;border:1px solid transparent;white-space:nowrap}.badge-open{background:var(--color-warning-soft);color:var(--tint-orange-fg)}.badge-in_progress{background:var(--tint-blue-bg);color:var(--tint-blue-fg)}.badge-done{background:var(--color-accent-soft);color:var(--color-accent-dark)}.tag{display:inline-flex;align-items:center;gap:4px;font-size:12px;padding:2px 9px;border-radius:999px;background:var(--color-bg-soft);border:1px solid var(--color-border);color:var(--color-fg-muted)}.role-badge{font-size:11px;padding:1px 8px;border-radius:999px;border:1px solid var(--color-border)}.role-badge.admin{background:var(--color-accent-soft);color:var(--color-accent-dark);border-color:var(--color-accent-soft)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--overlay);display:flex;align-items:flex-start;justify-content:center;padding:48px 20px;z-index:100;overflow-y:auto}.modal{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow-2);width:560px;max-width:100%}.modal--wide{width:760px}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--color-border)}.modal-header h2{font-size:16px;margin:0}.modal-body{padding:20px;max-height:70vh;overflow-y:auto}.modal-footer{display:flex;justify-content:flex-end;gap:10px;padding:14px 20px;border-top:1px solid var(--color-border)}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--color-bg-soft)}.login-card{width:360px;background:var(--surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:32px;box-shadow:var(--shadow-1)}.login-card h1{font-size:20px;text-align:center;margin-bottom:4px}.login-card .muted{text-align:center;display:block;margin-bottom:24px}.calendar-toolbar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-bottom:14px}.date-nav{display:flex;align-items:center;gap:8px}.date-nav .btn{min-height:38px}.date-nav .btn-icon{width:38px;padding:0}.date-nav__label{min-width:250px;margin-left:10px;font-size:20px;font-weight:700;letter-spacing:-.01em}.calendar-grid-wrap{--gutter: 64px;border:1px solid var(--color-border);border-radius:var(--radius);overflow:hidden;background:var(--surface);box-shadow:var(--shadow-1)}.grid-header-row{position:sticky;top:0;z-index:6;display:flex;background:var(--surface-soft);border-bottom:1px solid var(--color-border-strong)}.grid-header-spacer{width:var(--gutter);flex-shrink:0;border-right:1px solid var(--color-border)}.grid-header-cols{display:flex;flex:1;min-width:0}.day-column-header{display:flex;flex:1;flex-direction:column;align-items:center;gap:3px;min-width:0;padding:8px 6px 9px;border-left:1px solid var(--grid-line)}.day-column-header:first-child{border-left:0}.day-column-header__dow{font-size:12.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--color-fg-muted)}.day-column-header__num{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;font-size:20px;font-weight:600;line-height:1;color:var(--color-fg)}.day-column-header.is-weekend .day-column-header__dow{color:var(--weekend-fg)}.day-column-header.is-today .day-column-header__dow{color:var(--color-accent-dark)}.day-column-header.is-today .day-column-header__num{background:var(--color-accent);color:var(--on-accent);box-shadow:none}.grid-scroll{max-height:calc(100vh - 280px);min-height:500px;overflow-y:auto}.grid-body{display:flex}.hour-labels{position:relative;width:var(--gutter);flex-shrink:0;background:var(--surface-soft);border-right:1px solid var(--color-border)}.hour-label{position:absolute;left:0;right:0;height:0}.hour-label span{position:absolute;right:10px;top:0;transform:translateY(-50%);font-size:12.5px;font-weight:500;font-variant-numeric:tabular-nums;color:var(--color-fg-muted)}.hour-label:first-child span{top:12px}.now-label{position:absolute;right:6px;z-index:3;transform:translateY(-50%);padding:1px 7px;border-radius:999px;background:var(--color-danger);color:#fff;font-size:11.5px;font-weight:700;font-variant-numeric:tabular-nums}.day-columns{display:flex;flex:1;min-width:0}.day-column{position:relative;flex:1;min-width:0;border-left:1px solid var(--grid-line);background-image:linear-gradient(to bottom,var(--grid-line) 0,var(--grid-line) 1px,transparent 1px),linear-gradient(to bottom,transparent 0,transparent calc(var(--hour-h) / 2),var(--grid-line-soft) calc(var(--hour-h) / 2),var(--grid-line-soft) calc(var(--hour-h) / 2 + 1px),transparent calc(var(--hour-h) / 2 + 1px));background-size:100% var(--hour-h);-webkit-user-select:none;user-select:none}.day-column:first-child{border-left:0}.day-column.is-weekend{background-color:var(--weekend-col)}.day-column.is-today{background-color:var(--today-col)}.day-column.is-editable{cursor:pointer}.slot-hover{position:absolute;left:2px;right:2px;z-index:1;display:flex;align-items:center;padding:0 8px;border:1.5px dashed color-mix(in srgb,var(--color-accent) 65%,transparent);border-radius:8px;background:color-mix(in srgb,var(--color-accent) 10%,transparent);color:var(--color-accent-dark);font-size:12.5px;font-weight:600;pointer-events:none}.drag-ghost{position:absolute;left:2px;right:2px;z-index:5;padding:3px 8px;border:1.5px solid var(--color-accent);border-radius:8px;background:color-mix(in srgb,var(--color-accent) 20%,transparent);color:var(--color-accent-dark);font-size:12.5px;font-weight:600;pointer-events:none}.entry-block{--ev: var(--color-accent);position:absolute;overflow:hidden;padding:4px 8px 4px 9px;border:0;border-left:4px solid var(--ev);border-radius:8px;background:color-mix(in srgb,var(--ev) 23%,var(--surface));color:var(--color-fg);font-size:13px;line-height:1.25;box-shadow:0 0 0 1px var(--surface),0 1px 3px #2b264a24;cursor:pointer;transition:background .12s,box-shadow .12s}.entry-block--task{--ev: var(--series-2)}.entry-block:hover{z-index:3;background:color-mix(in srgb,var(--ev) 32%,var(--surface));box-shadow:0 0 0 1px var(--surface),0 4px 12px #2b264a38}.entry-block--readonly{cursor:default}.entry-block__title{font-size:13px;font-weight:650;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.entry-block--tall .entry-block__title{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.entry-block__time,.entry-block__who{margin-top:1px;font-size:12px;color:var(--color-fg-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.entry-block__who{font-weight:600;color:var(--color-fg)}.entry-block--compact{padding-top:1px;padding-bottom:1px}.entry-block--compact .entry-block__title{font-size:12.5px}.now-line{position:absolute;left:0;right:0;z-index:4;height:0;border-top:2px solid var(--color-danger);pointer-events:none}.now-line:before{content:"";position:absolute;left:-5px;top:-6px;width:10px;height:10px;border-radius:50%;background:var(--color-danger)}.month-grid{display:grid;grid-template-columns:46px repeat(7,minmax(0,1fr));overflow:hidden;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-1)}.month-weekday-header{padding:10px 8px;background:var(--surface-soft);color:var(--color-fg-muted);font-size:12.5px;font-weight:600;letter-spacing:.06em;text-align:center;text-transform:uppercase}.month-weekday-header--week{font-size:11.5px;letter-spacing:.02em}.month-weekday-header.is-weekend{color:var(--weekend-fg)}.month-week-num{display:flex;justify-content:center;padding-top:13px;border-top:1px solid var(--color-border);background:var(--surface-soft);color:var(--text-subtle);font-size:12.5px;font-weight:600}.month-cell{display:flex;flex-direction:column;gap:4px;min-width:0;min-height:124px;padding:6px 7px 8px;border-top:1px solid var(--color-border);border-left:1px solid var(--color-border);background:var(--surface);cursor:pointer;transition:background .12s}.month-cell.is-weekend{background:linear-gradient(var(--weekend-col),var(--weekend-col)),var(--surface)}.month-cell.is-today{background:linear-gradient(var(--today-col),var(--today-col)),var(--surface)}.month-cell.is-outside{background:var(--surface-muted)}.month-cell:hover{background:var(--surface-hover)}.month-cell__top{display:flex;align-items:center;gap:6px;min-height:28px}.month-cell__day{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;font-size:14.5px;font-weight:600}.month-cell.is-outside .month-cell__day{color:var(--text-faint);font-weight:500}.month-cell.is-today .month-cell__day{background:var(--color-accent);color:var(--on-accent);box-shadow:none}.month-cell__total{margin-left:auto;color:var(--color-fg-muted);font-size:12.5px;font-weight:600}.month-cell__add{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;margin-left:auto;padding:0;border:1px solid var(--color-border-strong);border-radius:50%;background:var(--surface);color:var(--color-accent-dark);opacity:0;cursor:pointer;transition:opacity .12s}.month-cell__total+.month-cell__add{margin-left:2px}.month-cell:hover .month-cell__add,.month-cell__add:focus-visible{opacity:1}.month-cell__add:hover{background:var(--color-accent);border-color:var(--color-accent);color:var(--on-accent)}.month-chip{--ev: var(--color-accent);display:flex;align-items:center;gap:6px;min-width:0;padding:2px 7px 2px 6px;border-left:3px solid var(--ev);border-radius:6px;background:color-mix(in srgb,var(--ev) 17%,var(--surface));color:var(--color-fg);font-size:12.5px;line-height:1.35;cursor:pointer;transition:background .12s}.month-chip--task{--ev: var(--series-2)}.month-chip:hover{background:color-mix(in srgb,var(--ev) 30%,var(--surface))}.month-chip__time{flex:none;color:var(--color-fg-muted);font-size:11.5px;font-weight:700;font-variant-numeric:tabular-nums}.month-chip__title{flex:1;min-width:0;overflow:hidden;font-weight:500;text-overflow:ellipsis;white-space:nowrap}.month-cell.is-outside .month-chip{filter:saturate(.75)}.month-cell__more{align-self:flex-start;padding:1px 6px;border:0;border-radius:6px;background:transparent;color:var(--color-accent-dark);font:inherit;font-size:12.5px;font-weight:600;cursor:pointer}.month-cell__more:hover{background:var(--color-accent-soft)}.task-list{display:flex;flex-direction:column;gap:10px}.task-row{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:14px 16px;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--surface)}.task-row:hover{border-color:var(--border-frame)}.task-row__main{min-width:0;flex:1}.task-row__title-line{display:flex;align-items:center;gap:10px;margin-bottom:4px}.task-row__title{font-weight:700;font-size:14.5px}.task-row__meta{display:flex;gap:14px;font-size:12px;color:var(--color-fg-muted);flex-wrap:wrap}.task-row__actions{display:flex;gap:8px;flex-shrink:0}.contrib-row{display:flex;justify-content:space-between;padding:6px 0;border-bottom:1px solid var(--color-border);font-size:13px}.contrib-row:last-child{border-bottom:none}.kanban-board{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;align-items:stretch;border:1px solid var(--border-frame);border-radius:12px;background:var(--color-bg-soft);overflow:hidden}.kanban-column{display:flex;flex-direction:column;padding:0 10px 12px;min-height:420px;border-left:1.5px solid var(--border-frame);border-top:4px solid var(--col-color, #9a97b2);transition:background .12s}.kanban-column:first-child{border-left:0}.kanban-column[data-status=open]{--col-color: #8e8aa8}.kanban-column[data-status=in_progress]{--col-color: var(--series-2)}.kanban-column[data-status=clarification]{--col-color: var(--series-3)}.kanban-column[data-status=done]{--col-color: var(--color-accent)}.kanban-column--over{background:var(--color-accent-soft)}.kanban-column__header{display:flex;justify-content:space-between;align-items:center;font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--color-fg);padding:10px 2px 8px;margin-bottom:10px;border-bottom:1px solid var(--color-border)}.kanban-column__header .count{background:var(--surface);border:1px solid var(--border-frame);border-radius:10px;padding:0 8px;font-size:12px;color:var(--color-fg-muted)}.kanban-column__body{display:flex;flex-direction:column;flex:1;min-height:60px}.fold>summary{cursor:pointer;list-style:none;padding:4px 0}.fold>summary::-webkit-details-marker{display:none}.fold>summary:before{content:"▸";display:inline-block;width:16px;color:var(--color-fg-muted)}.fold[open]>summary:before{content:"▾"}.task-card .inline-actions{flex-wrap:wrap}.task-card{padding:10px 12px 10px 14px;cursor:grab;background:var(--surface);border:1px solid var(--border-frame);border-left:5px solid var(--col-color, #9a97b2);border-radius:10px;box-shadow:0 1px 3px #2b264a1a;transition:box-shadow .12s}.task-card:hover{box-shadow:0 3px 10px #2b264a29}.kanban-column[data-status=open] .task-card{--col-color: #8e8aa8}.kanban-column[data-status=in_progress] .task-card{--col-color: var(--series-2)}.kanban-column[data-status=clarification] .task-card{--col-color: var(--series-3)}.kanban-column[data-status=done] .task-card{--col-color: var(--color-accent);opacity:.85}.task-card:active{cursor:grabbing}.dropzone{border:1.5px dashed var(--color-border);border-radius:var(--radius);padding:18px;text-align:center;color:var(--color-fg-muted);font-size:13px;cursor:pointer}.dropzone.is-active{border-color:var(--color-accent);background:var(--color-accent-soft);color:var(--color-accent-dark)}.attachment-list{display:flex;flex-direction:column;gap:6px;margin-top:10px}.attachment-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:6px 10px;border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:12.5px}.attachment-row__name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.report-builder{display:grid;grid-template-columns:320px minmax(0,1fr);gap:20px;align-items:start}.report-builder>div{min-width:0}.export-menu{position:relative}.who-sub{font-size:10.5px;font-weight:400;color:var(--color-fg-muted);line-height:1.2;white-space:nowrap}.source-switch{display:flex;align-items:center;gap:10px;margin-bottom:12px;font-size:14px}.export-menu__list{position:absolute;right:0;top:calc(100% + 6px);width:320px;padding:6px;z-index:40;box-shadow:var(--shadow-2)}.export-menu__item{display:flex;flex-direction:column;gap:1px;padding:8px 10px;border-radius:var(--radius-sm);color:var(--color-fg);text-decoration:none}.export-menu__item:hover{background:var(--color-accent-soft)}.export-menu__item span{font-size:12px;color:var(--color-fg-muted)}.scroll-x{overflow-x:auto}.chart-card{margin-bottom:14px}.chart-legend{display:flex;flex-wrap:wrap;gap:14px;margin-top:10px;font-size:12px}.legend-item{display:inline-flex;align-items:center;gap:6px}.legend-item--clickable{border:none;background:none;padding:2px 6px;margin:-2px -6px;border-radius:var(--radius-sm);font:inherit;color:inherit;cursor:pointer}.legend-item--clickable:hover{background:var(--color-bg-soft);color:var(--color-accent-dark)}.legend-swatch{width:10px;height:10px;border-radius:2px;display:inline-block}.radio-group{display:flex;gap:14px;flex-wrap:wrap}.radio-option{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:500;color:var(--color-fg);cursor:pointer}.radio-option input{width:auto}.chip-multiselect{display:flex;flex-wrap:wrap;gap:6px;border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:8px;max-height:160px;overflow-y:auto}.chip{border:1px solid var(--color-border);border-radius:999px;padding:4px 11px;font-size:12.5px;cursor:pointer;background:var(--surface)}.chip.selected{background:var(--color-accent);border-color:var(--color-accent);color:var(--on-accent)}.audit-row-action{font-size:11px;font-weight:700;padding:1px 8px;border-radius:999px;display:inline-block}.audit-row-action.created{background:var(--color-accent-soft);color:var(--color-accent-dark)}.audit-row-action.updated{background:var(--tint-blue-bg);color:var(--tint-blue-fg)}.audit-row-action.deleted{background:var(--color-danger-soft);color:var(--tint-red-fg)}.tabs{display:flex;gap:6px;border-bottom:1px solid var(--color-border);margin-bottom:16px}.tabs button{border:none;background:transparent;padding:10px 4px;margin-right:18px;font-size:13.5px;font-weight:600;color:var(--color-fg-muted);cursor:pointer;border-bottom:2px solid transparent}.tabs button.active{color:var(--color-fg);border-bottom-color:var(--color-accent)}.inline-actions{display:flex;gap:6px}.role-badge.manager{background:var(--tint-blue-bg);color:var(--tint-blue-fg);border-color:var(--tint-blue-bg)}.notice-banner{display:flex;align-items:center;justify-content:center;gap:16px;padding:10px 24px;background:var(--color-warning-soft);border-bottom:1px solid var(--warning-border);color:var(--tint-orange-fg);font-size:14px}.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px}.kpi{border:1px solid var(--color-border);border-radius:var(--radius);padding:10px 14px;background:var(--color-bg-soft)}.kpi__value{font-size:24px;font-weight:700}.kpi__title{font-size:13px;color:var(--color-fg)}.kpi__hint{font-size:12px;color:var(--color-fg-muted);margin-top:2px}.pct-cell{display:flex;align-items:center;gap:8px}.pct-bar{position:relative;flex:1;height:12px;min-width:120px;background:var(--surface-track);border-radius:3px}.pct-bar__fill{position:absolute;left:0;top:0;bottom:0;background:var(--color-accent);border-radius:3px 0 0 3px}.pct-bar__extra{position:absolute;top:0;bottom:0;background:var(--series-2)}.pct-bar__line{position:absolute;top:-2px;bottom:-2px;width:2px;background:var(--goal)}.pct-bar__line--full{background:#9a97b2;width:1px}table.heat{border-collapse:separate;border-spacing:2px;font-size:11px}table.heat th{font-weight:500;color:var(--color-fg-muted);padding:2px 4px}table.heat th.heat__name{text-align:left;white-space:nowrap;padding-right:10px;color:var(--color-fg)}table.heat td{min-width:28px;height:24px;text-align:center;border-radius:3px;color:var(--heat-text)}table.heat td.heat__off{background:var(--surface-off)}table.heat--days td{min-width:30px;height:30px;font-size:11px;font-weight:600}table.heat--days td.heat__good{box-shadow:inset 0 0 0 2px var(--goal)}table.heat th.heat__weekend{color:var(--weekend-fg)}.heat-legend{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:8px;font-size:12px;color:var(--color-fg-muted)}.heat-legend__item{display:inline-block;min-width:34px;text-align:center;padding:2px 6px;border-radius:4px;font-weight:600}.seg-inline{margin-left:12px;vertical-align:middle;text-transform:none;letter-spacing:0}.shift-grid{border-collapse:collapse;font-size:13px}.shift-grid th,.shift-grid td{border:1px solid var(--color-border);padding:3px 4px;min-width:70px;height:46px;text-align:center;vertical-align:middle}.shift-grid th.shift-grid__today{background:var(--color-accent-soft)}.seg{display:inline-flex;border:1px solid var(--color-border);border-radius:var(--radius-sm);overflow:hidden}.seg button{border:0;background:var(--color-bg);padding:7px 14px;font:inherit;cursor:pointer}.seg button.active{background:var(--color-accent);color:var(--on-accent)}.month-cal{width:100%;table-layout:fixed;border-collapse:collapse}.month-cal th,.month-cal td{border:1px solid var(--color-border)}.month-cal thead th{padding:6px;background:var(--color-bg-soft);font-size:13px}.month-cal th.month-cal__week{width:52px;background:var(--color-bg-soft);color:var(--color-fg-muted);font-weight:500;font-size:13px}.month-cal__day{height:118px;vertical-align:top;padding:4px 6px}.month-cal__weekend{background:var(--weekend-tint)}.month-cal__outside{background:var(--surface-muted)}.month-cal__outside .month-cal__num{color:var(--text-subtle);font-weight:500}.month-cal__today{box-shadow:inset 0 0 0 2px var(--color-accent)}.month-cal__num{font-weight:600;font-size:14px;margin-bottom:4px}.cal-shift{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 8px;border-radius:6px;background:var(--color-accent-soft);border-left:4px solid var(--color-accent);padding:4px 8px;margin-bottom:4px;cursor:pointer;font-size:14px;line-height:1.25}.cal-shift--long{background:var(--tint-blue-bg);border-left-color:var(--series-2)}.cal-shift__who{font-weight:600}.cal-shift__time{font-size:16px;font-weight:700}.cal-shift__hours{color:var(--color-fg-muted);font-size:13px}.shift-grid th.shift-grid__name{text-align:left;min-width:150px;white-space:nowrap;padding:2px 8px;background:var(--color-bg-soft)}.shift-grid td.shift-grid__weekend,.shift-grid th.shift-grid__weekend{background:var(--weekend-tint-2)}.shift-chip{display:block;border-radius:4px;background:var(--color-accent-soft);border:1px solid var(--color-accent);color:var(--color-accent-dark);font-size:13px;font-weight:600;line-height:1.25;padding:5px 3px;cursor:pointer}.shift-chip--long{background:var(--tint-blue-bg);border-color:var(--series-2);color:var(--tint-blue-fg)}.task-creator{color:var(--color-fg-muted);font-size:12px}.platform-block{border:1px solid var(--color-border);border-radius:var(--radius);padding:10px 14px;margin-bottom:12px;background:var(--color-bg)}.platform-block>summary{cursor:pointer;font-weight:600}.platform-teams{color:var(--color-fg-muted);font-size:12px}.branch-picker{position:relative}.branch-picker__list{position:absolute;z-index:40;left:0;right:0;top:calc(100% + 2px);max-height:260px;overflow-y:auto;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-sm);box-shadow:var(--shadow-2)}.branch-picker__item{display:block;width:100%;text-align:left;padding:7px 10px;border:0;background:transparent;cursor:pointer;font:inherit;font-size:13px}.branch-picker__item:hover,.branch-picker__item.active{background:var(--color-accent-soft)}.branch-picker__empty{padding:8px 10px;color:var(--color-fg-muted);font-size:13px}:root{--color-border: #d3e2e8;--color-border-strong: #9fb6c1;--color-surface-sunken: var(--surface-sunken);--color-field: var(--surface-field);--color-focus: rgba(30, 91, 40, .22);--radius-xs: 8px;--radius-sm: 14px;--radius: 20px;--radius-lg: 28px;--shadow-1: 0 1px 2px rgba(43, 38, 74, .06), 0 4px 16px rgba(43, 38, 74, .06);--shadow-2: 0 16px 48px rgba(43, 38, 74, .22)}body{background:var(--bg-page);-webkit-font-smoothing:antialiased}.icon{flex:none;vertical-align:-3px}.app-header{background:var(--header-bg);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:0 1px 0 var(--color-border),0 4px 14px #2b264a0a;border-bottom:0}.app-brand{font-size:18px;letter-spacing:-.01em}.app-nav{gap:2px}.app-nav a{display:inline-flex;align-items:center;gap:7px;padding:8px 13px;border-radius:999px;font-size:13.5px;transition:background .12s,color .12s}.app-nav a .icon{opacity:.8}.app-nav a.active{background:var(--color-accent);color:var(--on-accent);box-shadow:none}.app-user.btn{height:auto;padding:5px 10px;border:1px solid var(--color-border);border-radius:999px;background:var(--surface)}.app-user.btn:hover{border-color:var(--color-border-strong)}.app-header__right .card .btn{gap:9px}.btn{min-height:36px;padding:7px 15px;border-radius:var(--radius-sm);border:1px solid var(--color-border-strong);background:var(--surface);box-shadow:0 1px 1px #2b264a0d;transition:background .12s,border-color .12s,box-shadow .12s,transform .05s}.btn:hover:not(:disabled){background:var(--color-surface-sunken);border-color:var(--border-hover)}.btn:active:not(:disabled){transform:translateY(1px)}.btn-primary{background:var(--color-accent);border-color:var(--accent-hover);box-shadow:0 1px 2px #1e5b284d}.btn-danger{border-color:var(--tint-red-border)}.btn-ghost{box-shadow:none;border-color:transparent;background:transparent}.btn-sm{min-height:28px;padding:3px 11px;font-size:12.5px;border-radius:7px}.btn-lg{min-height:44px;font-size:15px}input[type=text],input[type=password],input[type=date],input[type=time],input[type=datetime-local],input[type=number],input[type=email],input[type=url],select,textarea{min-height:38px;padding:8px 12px;background-color:var(--color-field);border:1.5px solid var(--color-border-strong);border-radius:var(--radius-sm);box-shadow:inset 0 1px 2px #2b264a0d;transition:border-color .12s,box-shadow .12s,background .12s}input::placeholder,textarea::placeholder{color:var(--text-placeholder)}input:hover:not(:disabled):not(:focus),select:hover:not(:disabled):not(:focus),textarea:hover:not(:disabled):not(:focus){border-color:var(--border-hover)}input:disabled,select:disabled,textarea:disabled{background-color:var(--color-surface-sunken);color:var(--color-fg-muted);cursor:not-allowed}select{-moz-appearance:none;appearance:none;-webkit-appearance:none;padding-right:34px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%235b5f58' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 11px center;cursor:pointer}input[type=checkbox],input[type=radio]{accent-color:var(--color-accent);width:16px;height:16px}label{color:var(--text-label)}.input-icon{position:relative}.input-icon .icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--text-subtle);pointer-events:none}.input-icon input{padding-left:38px}.card{border-radius:var(--radius);box-shadow:var(--shadow-1);border-color:var(--color-border)}.page-title{font-size:22px;letter-spacing:-.01em}.seg{display:inline-flex;padding:3px;gap:2px;background:var(--color-surface-sunken);border:1px solid var(--color-border);border-radius:10px;overflow:visible}.seg button{border:0;border-radius:7px;padding:6px 14px;background:transparent;color:var(--color-fg-muted);font-weight:600;font-size:13px;cursor:pointer;transition:background .12s,color .12s,box-shadow .12s}.seg button:hover:not(.active){color:var(--color-fg);background:var(--surface-glass)}.seg button.active{background:var(--surface);color:var(--color-fg);box-shadow:0 1px 3px #2b264a2e}.tabs{display:inline-flex;gap:2px;padding:3px;border:1px solid var(--color-border);border-radius:10px;background:var(--color-surface-sunken);margin-bottom:18px}.tabs button{margin:0;padding:7px 16px;border:0;border-radius:7px;font-size:13.5px;transition:background .12s,color .12s}.tabs button:hover:not(.active){background:var(--surface-glass);color:var(--color-fg)}.tabs button.active{background:var(--surface);color:var(--color-fg);box-shadow:0 1px 3px #2b264a2e}.chip{border-color:var(--color-border-strong);transition:background .12s,border-color .12s}.chip:hover:not(.selected){background:var(--color-surface-sunken)}.chip-multiselect{border-color:var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-field)}.empty-state{background:var(--surface);border:1.5px dashed var(--color-border-strong);border-radius:var(--radius);padding:40px 24px}.table th{background:var(--color-surface-sunken);border-bottom:1px solid var(--color-border-strong)}.table tr:hover td{background:var(--surface-hover)}.modal-overlay{background:var(--overlay);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.modal{border-radius:16px}.modal-header{padding:18px 22px}.modal-header h2{font-size:17px}.modal-body{padding:22px}.modal-footer{padding:14px 22px;background:var(--surface-footer);border-radius:0 0 16px 16px}.login-page{background:radial-gradient(900px 520px at 12% 8%,rgba(224,251,203,.95),transparent 62%),radial-gradient(900px 520px at 92% 92%,rgba(198,173,255,.42),transparent 62%),var(--login-base)}.login-card{width:400px;padding:36px 36px 32px;border:1px solid var(--color-border);border-radius:20px;box-shadow:0 20px 60px #2b264a24}.login-brand{display:flex;align-items:center;justify-content:center;gap:10px;margin-bottom:18px}.login-card h1{font-size:18px;margin-bottom:2px}.login-card .muted{margin-bottom:22px}.login-alert{margin:0 0 16px;padding:10px 12px;border-radius:var(--radius-sm);background:var(--color-surface-sunken);border:1px solid var(--color-border);color:var(--color-fg-muted);font-size:13px;text-align:center}.login-alert--error{background:var(--color-danger-soft);border-color:var(--tint-red-border);color:var(--tint-red-fg)}.seg--wrap{flex-wrap:wrap}.btn-icon{width:30px;min-width:30px;padding:0}.chip-multiselect[style*="border: none"]{background:transparent;box-shadow:none}.task-card .inline-actions{align-items:center}.chip-multiselect--bare{background:transparent;box-shadow:none;max-height:none}.classification-cascade{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 14px}.classification-cascade .field{min-width:0;margin-bottom:8px}.toolbar input[type=date],.toolbar input[type=time],.toolbar input[type=number]{width:auto;min-width:150px}.toolbar input[type=text]{width:auto;min-width:200px}.alert{display:flex;align-items:flex-start;gap:10px;padding:10px 14px;margin-bottom:12px;border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-surface-sunken);font-size:13.5px;line-height:1.4}.alert .icon{margin-top:2px}.alert--error{background:var(--color-danger-soft);border-color:var(--tint-red-border);color:var(--tint-red-fg)}.alert--success{background:var(--color-accent-soft);border-color:var(--accent-border);color:var(--color-accent-dark)}.alert--warning{background:var(--color-warning-soft);border-color:var(--warning-border);color:var(--tint-orange-fg)}.alert--info{background:var(--info-bg);border-color:var(--info-border);color:var(--tint-blue-fg)}.empty-state__icon{color:var(--text-faint);margin-bottom:8px}.empty-state__title{font-weight:600;color:var(--color-fg);font-size:15px}.empty-state__hint{margin-top:4px;font-size:13px}.skeleton-block{display:flex;flex-direction:column;gap:10px;padding:6px 0}.skeleton{border-radius:6px;background:linear-gradient(90deg,var(--surface-track) 25%,var(--surface-soft) 37%,var(--surface-track) 63%);background-size:400% 100%;animation:shimmer 1.3s ease infinite}@keyframes shimmer{0%{background-position:100% 50%}to{background-position:0 50%}}.toast-stack{position:fixed;right:20px;bottom:20px;z-index:200;display:flex;flex-direction:column;gap:10px;max-width:380px}.toast{display:flex;align-items:flex-start;gap:10px;padding:12px 14px;border-radius:12px;background:var(--toast-bg);color:var(--toast-fg);box-shadow:var(--shadow-2);font-size:13.5px;animation:toast-in .18s ease-out}.toast--success .icon{color:var(--toast-accent)}.toast--error{background:var(--toast-error-bg)}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.overlay-people{margin-top:10px;padding:10px 14px;background:var(--surface);border:1px solid var(--color-border);border-radius:var(--radius)}.overlay-people__head{display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:12.5px}.overlay-chip{border:1px solid var(--color-border-strong);border-radius:999px;background:var(--surface);padding:3px 10px;font:inherit;font-size:12.5px;cursor:pointer;opacity:.6}.overlay-chip.on{opacity:1;background:var(--color-accent-soft);border-color:var(--color-accent)}.people-picker__bar{display:flex;align-items:center;gap:12px;margin-bottom:8px}.people-picker__bar input{flex:1}.people-picker__count{white-space:nowrap;font-size:12px}.people-picker__quick{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}.heat-controls{display:flex;flex-wrap:wrap;align-items:center;gap:14px;margin-bottom:10px}.heat-scroll{overflow-x:auto}.heat-scroll--tall{max-height:540px;overflow:auto}.heat-scroll table.heat thead th{position:sticky;top:0;z-index:2;background:var(--surface)}.heat-scroll table.heat th.heat__name{position:sticky;left:0;z-index:1;background:var(--surface)}.heat-scroll table.heat thead th:first-child{left:0;z-index:3}.th-sort{border:0;background:none;padding:0;font:inherit;text-transform:inherit;letter-spacing:inherit;color:inherit;cursor:pointer}.th-sort:hover{color:var(--color-fg);text-decoration:underline}.cal-more{width:100%;border:1px dashed var(--color-border-strong);border-radius:6px;background:transparent;padding:3px 8px;font:inherit;font-size:12.5px;color:var(--color-fg-muted);cursor:pointer}.cal-more:hover{background:var(--color-surface-sunken);color:var(--color-fg)}.day-list__row{display:flex;justify-content:space-between;gap:12px;padding:7px 4px;border-bottom:1px solid var(--color-border)}.shift-scroll{overflow:auto;max-height:70vh}.shift-scroll .shift-grid thead th{position:sticky;top:0;z-index:2;background:var(--color-bg-soft)}.shift-scroll .shift-grid th.shift-grid__name{position:sticky;left:0;z-index:1}.shift-scroll .shift-grid thead th.shift-grid__name{z-index:3}.month-cal__count{float:right;font-size:11.5px;font-weight:600;color:var(--color-fg-muted);background:var(--color-surface-sunken);border-radius:999px;padding:1px 8px}@media (max-width: 1320px){.app-header{padding:0 14px}.app-header__left{gap:14px}.app-nav a{padding:8px 9px;gap:5px;font-size:13px}.app-header__right{gap:8px}}@media (max-width: 1040px){.app-nav a .icon{display:none}.app-nav a{padding:8px 10px}}@media (max-width: 920px){.app-user__role,.app-user .role-badge{display:none}}.cls-tree-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 16px;margin:18px 0 10px;padding-top:14px;border-top:1px solid var(--color-border)}.cls-tree-title{margin:0;font-size:15px;font-weight:700}.cls-path{position:sticky;top:-1px;z-index:3;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:4px 14px;margin:0 0 14px;padding:8px 12px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface-sunken)}.cls-path:before{content:"";position:absolute;left:-1px;right:-1px;top:-24px;height:24px;background:var(--surface)}.cls-path__chain{display:flex;flex-wrap:wrap;align-items:center;gap:4px}.cls-path__step{display:inline-flex;align-items:center;gap:4px}.cls-path__arrow{color:var(--color-border-strong);font-size:13px}.cls-path__hint{font-size:12px;color:var(--color-fg-muted)}.cls-path .cls-badge{min-width:0;opacity:.6;transition:opacity .15s,background .15s,color .15s}.cls-path .cls-badge.is-active{opacity:1;background:var(--lvl);border-color:var(--lvl);color:var(--on-lvl)}.cls-badge--platform{--lvl: var(--lvl-platform)}.cls-badge--object{--lvl: var(--lvl-object)}.cls-badge--system{--lvl: var(--lvl-system)}.cls-badge--category{--lvl: var(--lvl-category)}.cls-badge{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;min-width:86px;padding:3px 10px;border:1px solid transparent;border-radius:999px;font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap}.cls-badge--platform{background:var(--tint-gray-bg);border-color:var(--tint-gray-border);color:var(--tint-gray-fg)}.cls-badge--object{background:var(--tint-green-bg);border-color:var(--tint-green-border);color:var(--tint-green-fg)}.cls-badge--system{background:var(--tint-blue-bg);border-color:var(--tint-blue-border);color:var(--tint-blue-fg)}.cls-badge--category{background:var(--tint-orange-bg);border-color:var(--tint-orange-border);color:var(--tint-orange-fg)}.cls-block--object{margin-bottom:14px;padding:12px 14px 10px;background:var(--surface);border:1px solid var(--color-border-strong);border-left:5px solid var(--color-accent);border-radius:var(--radius);box-shadow:var(--shadow-1)}.cls-block--system{margin-top:10px;padding:10px 12px 8px;background:var(--tint-blue-faint);border:1px solid var(--tint-blue-border);border-left:4px solid var(--series-2);border-radius:var(--radius-sm)}.cls-children{margin-top:10px}.cls-block--system>.cls-children{margin-top:8px}.cls-block--object>.cls-children{padding-left:14px}.cls-row{display:flex;align-items:center;gap:8px;margin-bottom:6px;padding:2px 0;border-radius:var(--radius-sm)}.cls-row input[type=text]{flex:1 1 auto;min-width:0;width:auto}.cls-row--category{margin-left:4px;padding-left:10px;border-left:3px solid var(--series-3)}.cls-row--hidden input[type=text]{opacity:.55}.cls-row--new input[type=text]{border-color:var(--color-accent);background:var(--tint-green-faint)}.cls-row--new{animation:cls-pop 1.1s ease-out}@keyframes cls-pop{0%{box-shadow:0 0 0 5px var(--color-focus)}to{box-shadow:0 0 #aadc0000}}.cls-flag{flex:0 0 auto;padding:2px 9px;border-radius:999px;background:var(--color-accent-soft);color:var(--color-accent-dark);font-size:11px;font-weight:700}.cls-add{display:inline-flex;align-items:center;gap:6px;max-width:100%;margin-top:4px;padding:5px 14px 5px 10px;border:1px dashed var(--color-border-strong);border-radius:999px;background:transparent;font:inherit;font-size:12.5px;font-weight:600;cursor:pointer}.cls-add--object{color:var(--tint-green-fg);border-color:var(--tint-green-border)}.cls-add--system{color:var(--tint-blue-fg);border-color:var(--tint-blue-border)}.cls-add--category{color:var(--tint-orange-fg);border-color:var(--tint-orange-border)}.cls-add:hover{background:var(--color-surface-sunken)}.cls-add__in{font-weight:400;color:var(--color-fg-muted)}.cls-add__where{max-width:240px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--color-fg)}.cls-note{display:flex;align-items:flex-start;gap:8px;margin:-2px 0 12px;padding:8px 12px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface-sunken);color:var(--color-fg-muted);font-size:12.5px;line-height:1.45}.cls-note .icon{flex:0 0 auto;margin-top:2px;color:var(--color-accent-dark)}.cls-note b{color:var(--color-fg)}.cls-status{flex:0 0 auto;padding:2px 9px;border-radius:999px;background:var(--surface-track);color:var(--color-fg-muted);font-size:11px;font-weight:600;white-space:nowrap}.cls-status--pending{background:var(--color-warning-soft);color:var(--tint-orange-fg)}.cls-block--hidden.cls-block--object{border-left-color:var(--border-muted);background:var(--surface-muted)}.cls-block--hidden.cls-block--system{border-left-color:var(--border-muted);border-color:var(--color-border);background:var(--surface-muted)}.cls-block--hidden .cls-row--hidden .cls-badge,.cls-row--hidden .cls-badge{opacity:.6}.cls-platform--hidden{background:var(--surface-muted)}.cls-platform--hidden .cls-platform__main strong{color:var(--color-fg-muted)}.cls-tree-head~.cls-add--object{margin-top:2px}.cls-empty{margin-bottom:12px;padding:14px 16px;border:1px dashed var(--color-border-strong);border-radius:var(--radius);background:var(--color-surface-sunken);color:var(--color-fg-muted);font-size:13.5px}.kanban-column .task-card{background:var(--surface);border:1.5px solid var(--border-frame-strong);border-left:6px solid var(--col-color, #9a97b2);border-radius:10px;box-shadow:0 1px 3px #2b264a1f}.kanban-column .task-card:hover{border-color:var(--border-hover);border-left-color:var(--col-color, #9a97b2);box-shadow:0 4px 12px #2b264a2e}.kanban-column__body .task-card+.task-card{margin-top:10px}html[data-theme=dark]{color-scheme:dark;--bg-page: #1a1733;--surface: #2b264a;--surface-soft: #342f58;--surface-sunken: #231f3f;--surface-field: #221e3d;--surface-hover: #373260;--surface-muted: #28244a;--surface-off: #272342;--surface-track: #3d3868;--surface-footer: #2f2a52;--surface-glass: rgba(255, 255, 255, .08);--header-bg: rgba(43, 38, 74, .94);--login-base: #1a1733;--overlay: rgba(10, 8, 25, .66);--weekend-tint: rgba(198, 173, 255, .06);--weekend-tint-2: rgba(198, 173, 255, .09);--weekend-fg: #ffb694;--grid-line: #3b3663;--grid-line-soft: #302b52;--cell-line: #413c6b;--today-col: rgba(214, 255, 29, .08);--weekend-col: rgba(255, 255, 255, .035);--color-border: #413c6b;--color-border-strong: #5f5a92;--border-frame: #4b4678;--border-frame-strong: #615b95;--border-hover: #8e88c4;--border-muted: #5f5a92;--color-fg: #f2efff;--color-fg-muted: #b8b3d6;--color-heading: #f2efff;--text-label: #d0cce8;--text-subtle: #a6a1c8;--text-placeholder: #8c87b3;--text-faint: #9590bd;--heat-text: #2b264a;--heat-text-low: #2b264a;--goal: #ff9a6b;--goal-text: #ffb694;--lime: #d6ff1d;--lime-hover: #e4ff6a;--lime-border: #b4dc00;--on-lime: #2b264a;--color-accent: #d6ff1d;--color-accent-dark: #d6ff1d;--color-accent-soft: #2f4d2b;--accent-hover: #e6ff6a;--on-accent: #2b264a;--color-danger: #ff8a80;--color-danger-soft: #4a2330;--color-warning: #f2d44a;--color-warning-soft: #4a4020;--color-focus: rgba(214, 255, 29, .35);--tint-green-bg: #2f4d2b;--tint-green-border: #4f7f3f;--tint-green-fg: #c9f59a;--tint-green-faint: #273a2a;--tint-blue-bg: #3d3374;--tint-blue-border: #5f52a8;--tint-blue-fg: #dccfff;--tint-blue-faint: #322b60;--tint-orange-bg: #5a3422;--tint-orange-border: #8c5236;--tint-orange-fg: #ffc8a9;--tint-gray-bg: #3a3563;--tint-gray-border: #504a82;--tint-gray-fg: #e6e2f7;--tint-red-border: #94403b;--tint-red-fg: #ffb4ac;--warning-border: #7a6a2a;--accent-border: #4f7f3f;--info-bg: #352f66;--info-border: #554b9a;--ev-activity: #b5ee6b;--ev-activity-bg: #2f4d2b;--ev-activity-bg-hover: #30502c;--ev-task: #c6adff;--ev-task-bg: #3d3374;--ev-task-bg-hover: #443a7e;--ev-activity-border: #2f4d2b;--ev-task-border: #3d3374;--ev-person-border-mix: 0%;--lvl-platform: #cfcbe6;--lvl-object: #b5ee6b;--lvl-system: #c6adff;--lvl-category: #ffa985;--on-lvl: #2b264a;--toast-bg: #3d3868;--toast-fg: #ffffff;--toast-error-bg: #8a1f17;--toast-accent: #d6ff1d;--shadow-1: 0 1px 2px rgba(0, 0, 0, .4), 0 4px 16px rgba(0, 0, 0, .28);--shadow-2: 0 16px 48px rgba(0, 0, 0, .6)}html[data-theme=dark] select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23b8b3d6' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E")}html[data-theme=dark] .skeleton{background:linear-gradient(90deg,var(--surface-track) 25%,var(--surface-soft) 37%,var(--surface-track) 63%);background-size:400% 100%}html[data-theme=dark] .login-page{background:radial-gradient(900px 520px at 12% 8%,rgba(214,255,29,.13),transparent 62%),radial-gradient(900px 520px at 92% 92%,rgba(198,173,255,.2),transparent 62%),var(--login-base)}.theme-switch{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:4px 0 2px;padding:8px 10px 6px;border-top:1px solid var(--color-border)}.theme-switch__label{font-size:13px;font-weight:600;color:var(--color-fg-muted)}.theme-switch__buttons{display:inline-flex;gap:2px;padding:3px;border:1px solid var(--color-border);border-radius:999px;background:var(--surface-sunken)}.theme-switch__buttons button{display:inline-flex;align-items:center;justify-content:center;width:28px;height:26px;padding:0;border:0;border-radius:999px;background:transparent;color:var(--color-fg-muted);cursor:pointer}.theme-switch__buttons button:hover:not(.active){background:var(--surface-glass);color:var(--color-fg)}.theme-switch__buttons button.active{background:var(--surface);color:var(--color-accent-dark);box-shadow:0 1px 3px #2b264a40}.login-page__theme{position:fixed;top:16px;right:18px}.theme-cycle{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border:1px solid var(--color-border);border-radius:999px;background:var(--surface);color:var(--color-fg-muted);cursor:pointer;box-shadow:var(--shadow-1)}.theme-cycle:hover{color:var(--color-fg);border-color:var(--border-hover)}:root{--fs-2xs: 11.5px;--fs-xs: 12.5px;--fs-sm: 13.5px;--fs-base: 15px;--fs-md: 16px;--fs-lg: 18px;--fs-xl: 22px;--fs-2xl: 28px;--fs-3xl: 32px;--font-sans: "X5 Sans", "Onest Variable", "Segoe UI", -apple-system, BlinkMacSystemFont, Roboto, Helvetica, Arial, sans-serif}body{font-family:var(--font-sans);font-size:var(--fs-base);line-height:1.5}.page-title{font-size:var(--fs-3xl);font-weight:700;letter-spacing:-.02em;line-height:1.2}.section-title{font-size:var(--fs-lg);font-weight:700;text-transform:none;letter-spacing:-.005em;color:var(--color-fg);margin-bottom:12px}.modal-header h2{font-size:var(--fs-xl);font-weight:700;letter-spacing:-.01em}.app-brand{font-size:var(--fs-xl)}.empty-state__title{font-size:var(--fs-lg)}.empty-state__hint{font-size:var(--fs-base)}label{font-size:var(--fs-sm);font-weight:600}.field-hint,.error-text,.warning-text{font-size:var(--fs-xs)}.btn{font-size:14px}.btn-sm{font-size:var(--fs-sm)}.btn-lg{font-size:var(--fs-md)}.radio-option,.seg button,.tabs button{font-size:var(--fs-sm)}.table{font-size:14px}.table th{font-size:12px;letter-spacing:.05em}.badge,.role-badge,.audit-row-action,.cls-status,.cls-flag{font-size:12px}.tag,.chip,.chart-legend,.overlay-chip,.cal-more{font-size:var(--fs-xs)}.chip{font-size:var(--fs-sm)}.app-user__role{font-size:12px}.app-nav a{font-size:14px}.task-row__title,.task-card .task-row__title{font-size:var(--fs-md);font-weight:700;line-height:1.3}.task-row__meta,.task-creator,.platform-teams,.who-sub{font-size:var(--fs-xs)}.kanban-column__header{font-size:14px}.kanban-column__header .count{font-size:var(--fs-xs)}.contrib-row,.attachment-row,.dropzone{font-size:var(--fs-sm)}.kpi__value{font-size:28px}.kpi__title{font-size:14px}.kpi__hint,.heat-legend{font-size:var(--fs-xs)}table.heat,table.heat--days td{font-size:12px}.notice-banner{font-size:14.5px}.alert,.login-alert,.toast{font-size:14px}.export-menu__item span,.overlay-people__head,.cls-note,.cls-add,.cls-path__hint,.people-picker__count{font-size:var(--fs-xs)}.cls-tree-title{font-size:var(--fs-lg)}.cls-badge{font-size:11.5px}.cls-empty,.branch-picker__item,.branch-picker__empty,.shift-grid,.shift-chip,.month-cal thead th{font-size:var(--fs-sm)}.chart-head{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:8px 16px;margin-bottom:12px}.chart-head .section-title{margin-bottom:2px}.chart-head__sub{max-width:62ch;color:var(--color-fg-muted);font-size:var(--fs-sm);line-height:1.4}.team-card__head{display:flex;align-items:baseline;gap:10px;margin-bottom:4px}.team-card__name{font-size:var(--fs-lg);font-weight:700;letter-spacing:-.005em}.team-card__count{color:var(--color-fg-muted);font-size:var(--fs-sm);font-weight:600}.team-card__lead{display:flex;align-items:center;gap:6px;margin-bottom:8px;color:var(--color-fg-muted);font-size:var(--fs-sm)}.team-card__lead strong{color:var(--color-fg)}.team-card__members{display:flex;flex-wrap:wrap;gap:6px}.person-pill{display:inline-flex;align-items:center;padding:3px 11px;border:1px solid var(--color-border);border-radius:999px;background:var(--surface-sunken);font-size:var(--fs-sm);font-weight:500}.cls-platform__main strong{font-size:var(--fs-lg);letter-spacing:-.005em}.cls-path__arrow{color:var(--text-subtle)}.now-label{background:#d92d20}.now-line{border-top-color:#d92d20}.now-line:before{background:#d92d20}.page-header .toolbar select{max-width:290px}@media (max-width: 1320px){.app-brand{font-size:18px}.app-nav a{gap:5px;padding:8px;font-size:13.5px}}@media (max-width: 1040px){.app-nav a .icon{display:none}.app-nav a{padding:8px 9px}}body{font-family:var(--font-sans);font-weight:400;line-height:1.4;letter-spacing:0}h1,h2,h3,h4{font-weight:500;letter-spacing:-.02em;line-height:1.2}strong,b{font-weight:600}::selection{background:var(--lime);color:var(--on-lime)}.page-title{color:var(--color-heading);font-size:var(--fs-3xl);font-weight:500;letter-spacing:-.03em;line-height:1.05}.section-title{font-weight:500;letter-spacing:-.02em;line-height:1.2}.modal-header h2{color:var(--color-heading);font-weight:500;letter-spacing:-.02em;line-height:1.15}label,.btn,.badge,.role-badge,.tag,.audit-row-action,.cls-badge,.cls-flag,.cls-status,.cls-add,.seg button,.tabs button,.chip,.app-nav a,.app-user__name,.kanban-column__header,.task-row__title,.task-card .task-row__title,.team-card__name,.team-card__count,.cls-tree-title,.cls-platform__main strong,.empty-state__title,.month-cell__total,.month-cell__more,.date-nav__label,.shift-chip,.cal-shift__who,.person-pill,.toast{font-weight:500}.table th,.day-column-header__dow,.month-weekday-header,.kanban-column__header,.cls-badge{text-transform:none;letter-spacing:0}.table th{font-size:13px;font-weight:500}.app-main{padding:28px 32px 56px}.page-header{margin-bottom:22px}a{color:var(--color-accent-dark)}:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.app-header{height:68px;padding:0 28px;background:var(--header-bg);box-shadow:0 1px 0 var(--color-border)}.app-header__left{gap:30px}.brand-logo{display:block;height:var(--logo-h, 28px);width:auto;-webkit-user-select:none;user-select:none}.brand-logo--ondark,html[data-theme=dark] .brand-logo--onlight{display:none}html[data-theme=dark] .brand-logo--ondark{display:block}.app-brand{--logo-h: 32px;display:inline-flex;align-items:center;gap:14px;color:var(--color-fg);text-decoration:none;white-space:nowrap}.app-brand .brand-logo{transform:translateY(calc(var(--logo-h) * -.2125))}.app-brand .app-brand__product{transform:translateY(.8px)}.app-brand__divider{width:1px;height:20px;background:var(--color-border-strong)}.app-brand .app-brand__product{color:var(--color-fg);font-size:19px;font-weight:500;letter-spacing:-.02em;line-height:1.1}.app-nav{gap:4px}.app-nav a{gap:8px;padding:11px 20px;border-radius:999px;font-size:17px;font-weight:500;color:var(--color-fg-muted);white-space:nowrap}.app-nav a:hover{background:var(--surface-sunken);color:var(--color-fg)}.app-nav a.active{background:var(--lime);color:var(--on-lime);box-shadow:none}.app-nav a.active .icon{opacity:1}.app-user.btn{min-height:46px;padding:4px 18px}.app-user__name{font-size:16px}.app-user.btn.app-user--current{border-color:var(--lime-border);background:var(--lime);color:var(--on-lime)}.calendar-grid-wrap{border-color:var(--cell-line)}.hour-labels,.grid-header-spacer{border-right-color:var(--grid-line)}.month-grid{border-color:var(--cell-line)}.month-week-num{border-top-color:var(--cell-line)}.month-cell{border-top-color:var(--cell-line);border-left-color:var(--cell-line)}.month-cal th,.month-cal td,.shift-grid th,.shift-grid td{border-color:var(--cell-line)}.btn{min-height:40px;padding:8px 20px;border:1.5px solid var(--color-border-strong);border-radius:999px;background:var(--surface);color:var(--color-fg);font-size:14.5px;box-shadow:none}.btn:hover:not(:disabled){background:var(--surface-sunken);border-color:var(--border-hover)}.btn-primary{background:var(--color-accent);border-color:var(--color-accent);color:var(--on-accent);box-shadow:none}.btn-primary:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}.btn-danger{background:var(--surface);border-color:var(--tint-red-border);color:var(--color-danger)}.btn-danger:hover:not(:disabled){background:var(--color-danger-soft);border-color:var(--color-danger)}.btn-ghost{background:transparent;border-color:transparent}.btn-ghost:hover:not(:disabled){background:var(--surface-sunken);border-color:transparent}.btn-sm{min-height:32px;padding:4px 14px;border-radius:999px;font-size:13px}.btn-lg{min-height:48px;padding:10px 28px;font-size:16px}.btn-icon{width:40px;min-width:40px;padding:0}.btn-sm.btn-icon{width:32px;min-width:32px}.date-nav .btn{min-height:40px}.date-nav .btn-icon{width:40px}.icon-btn{border-radius:999px}input[type=text],input[type=password],input[type=date],input[type=time],input[type=datetime-local],input[type=number],input[type=email],input[type=url],select,textarea{min-height:42px;padding:9px 14px;border:1.5px solid var(--color-border-strong);border-radius:var(--radius-sm);background-color:var(--color-field);font-size:var(--fs-base);box-shadow:none}input:focus,select:focus,textarea:focus{background-color:var(--surface);border-color:var(--color-accent);box-shadow:0 0 0 4px var(--color-focus)}select{padding-right:38px;background-position:right 14px center}input[type=date],input[type=time],input[type=datetime-local]{padding-left:12px;padding-right:8px}.input-icon .icon{left:15px}.input-icon input{padding-left:44px}label{font-size:var(--fs-sm);color:var(--text-label)}.card:not(.task-card){padding:20px}.card.export-menu__list{padding:6px}.card{border-radius:var(--radius);border-color:var(--color-border);box-shadow:var(--shadow-1)}.seg,.tabs{padding:4px;gap:2px;border:1px solid var(--color-border);border-radius:999px;background:var(--surface-sunken)}.seg--wrap{border-radius:var(--radius-sm)}.seg button,.tabs button{padding:7px 18px;border-radius:999px;font-size:var(--fs-sm);color:var(--color-fg-muted)}.tabs button{font-size:var(--fs-base)}.seg button:hover:not(.active),.tabs button:hover:not(.active){background:var(--surface-glass);color:var(--color-fg)}.seg button.active,.tabs button.active{background:var(--lime);color:var(--on-lime);box-shadow:none}.chip{padding:5px 14px;border:1.5px solid var(--color-border-strong);border-radius:999px;background:var(--surface)}.chip:hover:not(.selected){background:var(--surface-sunken);border-color:var(--border-hover)}.chip.selected{background:var(--lime);border-color:var(--lime-border);color:var(--on-lime)}.badge,.role-badge,.tag{letter-spacing:0}.overlay-chip.on{background:var(--lime);border-color:var(--lime-border);color:var(--on-lime)}.modal{border-radius:var(--radius-lg)}.modal-header{padding:22px 28px 18px}.modal-body{padding:24px 28px}.modal-footer{padding:16px 28px;border-radius:0 0 var(--radius-lg) var(--radius-lg)}.alert,.login-alert{border-radius:var(--radius-sm)}.toast{border-radius:16px;font-size:14px}.login-card{width:440px;padding:44px 44px 38px;border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:0 24px 64px #2b264a24}.login-brand{--logo-h: 48px;margin-bottom:28px}.login-card h1{color:var(--color-heading);font-size:28px;font-weight:500;letter-spacing:-.03em;line-height:1.1;margin-bottom:8px}.login-card .muted{margin-bottom:28px;font-size:var(--fs-base)}.date-nav__label{font-size:22px;letter-spacing:-.02em}.day-column-header__dow{font-size:13.5px}.day-column-header__num{font-size:22px;font-weight:500;letter-spacing:-.02em}.day-column-header.is-today .day-column-header__num,.month-cell.is-today .month-cell__day{background:var(--lime);color:var(--on-lime);box-shadow:none}.month-weekday-header{font-size:13.5px;font-weight:500}.month-weekday-header--week{font-size:12.5px}.month-cell__add:hover{background:var(--lime);border-color:var(--lime-border);color:var(--on-lime)}.month-cell__day{font-weight:500}.entry-block{border:1px solid var(--ev-border, transparent);border-left:4px solid var(--ev);border-radius:10px;padding:3px 7px 3px 8px;box-shadow:0 0 0 1px var(--surface),0 1px 3px #2b264a2e}.entry-block--activity{--ev: var(--ev-activity);--ev-border: var(--ev-activity-border);background:var(--ev-activity-bg)}.entry-block--activity:hover{background:var(--ev-activity-bg-hover)}.entry-block--task{--ev: var(--ev-task);--ev-border: var(--ev-task-border);background:var(--ev-task-bg)}.entry-block--task:hover{background:var(--ev-task-bg-hover)}.entry-block--person{--ev-border: color-mix(in srgb, var(--ev) var(--ev-person-border-mix), var(--surface));background:color-mix(in srgb,var(--ev) 23%,var(--surface))}.entry-block--person:hover{background:color-mix(in srgb,var(--ev) 32%,var(--surface))}.entry-block__title{font-weight:600}.month-chip{border:1px solid var(--ev-border, transparent);border-left:3px solid var(--ev);border-radius:8px;padding:1px 7px 1px 5px}.month-chip--activity{--ev: var(--ev-activity);--ev-border: var(--ev-activity-border);background:var(--ev-activity-bg)}.month-chip--activity:hover{background:var(--ev-activity-bg-hover)}.month-chip--task{--ev: var(--ev-task);--ev-border: var(--ev-task-border);background:var(--ev-task-bg)}.month-chip--task:hover{background:var(--ev-task-bg-hover)}.month-chip--person{--ev-border: color-mix(in srgb, var(--ev) var(--ev-person-border-mix), var(--surface));background:color-mix(in srgb,var(--ev) 17%,var(--surface))}.month-chip--person:hover{background:color-mix(in srgb,var(--ev) 30%,var(--surface))}.slot-hover,.drag-ghost{border-radius:10px}.kanban-board{border-radius:var(--radius)}.kanban-column__header{font-size:15px}.kanban-column .task-card{border-radius:14px}.cls-block--object{border-left-color:var(--lvl-object)}.cls-block--system{border-left-color:var(--lvl-system)}.cls-row--category{border-left-color:var(--lvl-category)}.cls-badge{font-size:12.5px}.kpi{padding:14px 18px}.kpi__value{color:var(--color-heading);font-size:32px;font-weight:500;letter-spacing:-.03em;line-height:1.1}.pct-bar{border-radius:6px}.pct-bar__fill{border-radius:6px 0 0 6px}table.heat td{border-radius:5px}@media (max-width: 1560px){.app-brand__divider,.app-brand .app-brand__product{display:none}}@media (max-width: 1420px){.app-header{padding:0 20px}.app-header__left{gap:20px}.app-nav{gap:2px}.app-nav a{padding:11px 15px}.app-main{padding:24px 24px 48px}}@media (max-width: 1330px){.app-nav a .icon{display:none}}@media (max-width: 1160px){.app-header{padding:0 16px}.app-header__left{gap:16px}.app-nav a{padding:11px 12px;font-size:16px}}@media (max-width: 1080px){.app-nav a{padding:11px;font-size:15px}.app-user__role,.app-user .role-badge{display:none}}.field-label-row{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:24px;margin-bottom:4px}.field-label-row>label{margin-bottom:0}.now-btn{display:inline-flex;align-items:center;gap:5px;padding:2px 11px 2px 8px;border:1px solid var(--color-border-strong);border-radius:999px;background:var(--surface);color:var(--color-heading);font:inherit;font-size:12px;font-weight:600;line-height:1.5;cursor:pointer;transition:background .12s,border-color .12s,transform .05s}.now-btn:hover{background:var(--ev-activity-bg);border-color:var(--color-accent)}.now-btn:active{transform:translateY(1px)}.now-btn:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}@keyframes input-flash{0%{box-shadow:0 0 0 3px color-mix(in srgb,var(--color-accent) 45%,transparent)}to{box-shadow:0 0 0 3px transparent}}.input-flash{animation:input-flash .7s ease-out}:root{--tip-bg: #2b264a;--tip-fg: #ffffff}html[data-theme=dark]{--tip-bg: #f2efff;--tip-fg: #2b264a}.tip{position:relative}.tip:before,.tip:after{opacity:0;pointer-events:none;transform:translateY(3px);transition:opacity .12s ease .15s,transform .12s ease .15s;z-index:60}.tip:after{content:attr(data-tip);position:absolute;right:-4px;bottom:calc(100% + 9px);width:max-content;max-width:300px;padding:8px 11px;border-radius:10px;background:var(--tip-bg);color:var(--tip-fg);box-shadow:var(--shadow-2);font-size:12.5px;font-weight:500;line-height:1.4;text-align:left;white-space:pre-line}.tip:before{content:"";position:absolute;right:calc(50% - 5px);bottom:calc(100% + 4px);border:5px solid transparent;border-top-color:var(--tip-bg);border-bottom-width:0}.tip:hover:before,.tip:hover:after,.tip:focus-visible:before,.tip:focus-visible:after{opacity:1;transform:none}.chip--add{border-style:dashed;background:transparent;color:var(--color-heading);font:inherit;font-size:var(--fs-sm);font-weight:600}.chip--add:hover{background:var(--ev-activity-bg);border-color:var(--color-accent)}.chip--add:focus-visible,.chip[role=button]:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.chip-input{display:inline-flex;align-items:center;gap:4px;padding:2px 3px 2px 14px;border:1.5px solid var(--color-accent);border-radius:999px;background:var(--surface);transition:box-shadow .12s}.chip-input:focus-within{box-shadow:0 0 0 4px var(--color-focus)}.chip-input input{width:138px;min-height:0;padding:3px 0;border:0;border-radius:0;background:transparent;box-shadow:none;font:inherit;font-size:var(--fs-sm);color:var(--color-fg)}.chip-input input:focus{background:transparent;box-shadow:none}.chip-input__ok{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;border:0;border-radius:50%;background:var(--color-accent);color:var(--on-accent);font-size:13px;line-height:1;cursor:pointer}.chip-input__ok:disabled{opacity:.6;cursor:default}:root{--chart-guide: #7d97a8}html[data-theme=dark]{--chart-guide: #7b76a6}.cls-platform .inline-actions{align-items:center;gap:8px}.cls-count{display:inline-flex;align-items:center;justify-content:center;gap:5px;min-height:32px;padding:0 14px;margin-right:6px;border:1px solid var(--border-muted);border-radius:999px;background:var(--surface-muted);color:var(--color-fg-muted);font-size:13px;line-height:1;white-space:nowrap}.cls-count strong{color:var(--color-heading);font-weight:600}
