:root{--ris-ink: #0b1220;--ris-text: #0f172a;--ris-text-secondary: #475569;--ris-text-muted: #64748b;--ris-text-inverse: #f8fafc;--ris-surface: #ffffff;--ris-surface-subtle: #f8fafc;--ris-surface-sunken: #f1f5f9;--ris-border: #e2e8f0;--ris-border-strong: #cbd5e1;--ris-primary: #0f766e;--ris-primary-hover: #115e59;--ris-primary-subtle: #f0fdfa;--ris-primary-border: #99f6e4;--ris-accent: #14b8a6;--ris-focus-ring: #14b8a6;--ris-success: #15803d;--ris-success-bg: #f0fdf4;--ris-warning: #b45309;--ris-warning-bg: #fffbeb;--ris-danger: #b91c1c;--ris-danger-bg: #fef2f2;--ris-info: #1d4ed8;--ris-info-bg: #eff6ff;--ris-meter-green: #16a34a;--ris-meter-amber: #d97706;--ris-meter-red: #dc2626;--ris-chart-1: #0f766e;--ris-chart-2: #0284c7;--ris-chart-3: #6366f1;--ris-chart-4: #d97706;--ris-chart-5: #db2777;--ris-chart-6: #64748b;--ris-font-sans: "Inter Variable", Inter, "Segoe UI", system-ui, sans-serif;--ris-font-numeric: "Inter Variable", Inter, "Segoe UI", system-ui, sans-serif;--ris-font-size-xs: 12px;--ris-font-size-sm: 13px;--ris-font-size-base: 15px;--ris-font-size-md: 17px;--ris-font-size-lg: 20px;--ris-font-size-xl: 26px;--ris-font-size-2xl: 34px;--ris-line-height-tight: 1.25;--ris-line-height-base: 1.5;--ris-space-1: 4px;--ris-space-2: 8px;--ris-space-3: 12px;--ris-space-4: 16px;--ris-space-6: 24px;--ris-space-8: 32px;--ris-space-12: 48px;--ris-radius-sm: 6px;--ris-radius-md: 8px;--ris-radius-pill: 999px;--ris-shadow-1: 0 1px 2px rgb(15 23 42 / 6%), 0 1px 3px rgb(15 23 42 / 10%);--ris-shadow-2: 0 8px 24px rgb(15 23 42 / 10%);--ris-duration-fast: .12s;--ris-duration-base: .18s;--ris-ease: cubic-bezier(.2, 0, 0, 1)}@media(max-width:767px){:root{--ris-font-size-base: 16px}}@media(prefers-reduced-motion:reduce){:root{--ris-duration-fast: 0ms;--ris-duration-base: 0ms}}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--ris-font-sans);font-size:var(--ris-font-size-base);line-height:var(--ris-line-height-base);color:var(--ris-text);background:var(--ris-surface-subtle);-webkit-font-smoothing:antialiased}h1,h2,h3{margin:0;line-height:var(--ris-line-height-tight);letter-spacing:-.01em}button{font:inherit}.shell{min-height:100%;display:flex;flex-direction:column;padding-bottom:76px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:var(--ris-space-4);padding:var(--ris-space-4);background:var(--ris-surface);border-bottom:1px solid var(--ris-border);position:sticky;top:0;z-index:10}.topbar__logo{height:22px;width:auto;display:block}.topbar__user{color:var(--ris-text-muted);font-size:var(--ris-font-size-sm)}.topbar__right{display:flex;align-items:center;gap:var(--ris-space-3)}.bell{position:relative}.bell__button{position:relative;width:40px;height:40px;border:1px solid var(--ris-border);border-radius:var(--ris-radius-sm);background:var(--ris-surface);font-size:18px;cursor:pointer;color:var(--ris-text-secondary)}.bell__badge{position:absolute;top:-6px;right:-6px;min-width:18px;height:18px;padding:0 4px;border-radius:var(--ris-radius-pill);background:var(--ris-danger);color:#fff;font-size:11px;line-height:18px;text-align:center}.bell__panel{position:absolute;right:0;top:48px;width:min(360px,calc(100vw - 32px));background:var(--ris-surface);border:1px solid var(--ris-border);border-radius:var(--ris-radius-md);box-shadow:var(--ris-shadow-2);z-index:40;overflow:hidden}.bell__head{display:flex;align-items:center;justify-content:space-between;gap:var(--ris-space-2);padding:var(--ris-space-3);border-bottom:1px solid var(--ris-border);font-size:var(--ris-font-size-sm);color:var(--ris-text-secondary)}.bell__empty{padding:var(--ris-space-4)}.bell__list{list-style:none;margin:0;padding:0;max-height:60vh;overflow-y:auto}.bell__item{border-bottom:1px solid var(--ris-border)}.bell__item:last-child{border-bottom:0}.bell__item--unread{background:var(--ris-primary-subtle)}.bell__entry{display:flex;flex-direction:column;gap:2px;width:100%;padding:var(--ris-space-3);border:0;background:none;text-align:left;cursor:pointer}.bell__title{font-size:var(--ris-font-size-sm);font-weight:600}.bell__body,.bell__time{font-size:var(--ris-font-size-xs);color:var(--ris-text-muted)}.main{flex:1;width:100%;max-width:720px;margin:0 auto;padding:var(--ris-space-4);display:flex;flex-direction:column;gap:var(--ris-space-4)}.tabbar{position:fixed;left:0;right:0;bottom:0;display:grid;grid-template-columns:repeat(5,1fr);background:var(--ris-surface);border-top:1px solid var(--ris-border);padding-bottom:env(safe-area-inset-bottom);z-index:10}.tabbar__item{display:flex;flex-direction:column;align-items:center;gap:2px;min-height:56px;padding:var(--ris-space-2);border:0;background:none;color:var(--ris-text-muted);font-size:var(--ris-font-size-xs);cursor:pointer}.tabbar__item--active{color:var(--ris-primary);font-weight:600}.card{background:var(--ris-surface);border:1px solid var(--ris-border);border-radius:var(--ris-radius-md);padding:var(--ris-space-4);display:flex;flex-direction:column;gap:var(--ris-space-3)}.card--auth{max-width:400px;width:100%;gap:var(--ris-space-4)}.card--hint{border-color:var(--ris-warning);background:var(--ris-warning-bg)}.card__title{font-size:var(--ris-font-size-md);font-weight:600}.card__head{display:flex;align-items:center;justify-content:space-between;gap:var(--ris-space-3)}.person-list{list-style:none;margin:0;padding:0}.person-list__row{display:flex;align-items:center;justify-content:space-between;gap:var(--ris-space-3);padding:var(--ris-space-3) 0;border-bottom:1px solid var(--ris-border)}.person-list__row:last-child{border-bottom:0}.person-list__name{margin:0;font-weight:500}.person-list__meta{margin:0;font-size:var(--ris-font-size-xs);color:var(--ris-text-muted)}.create-form{display:flex;flex-direction:column;gap:var(--ris-space-3);padding:var(--ris-space-3);background:var(--ris-surface-subtle);border:1px solid var(--ris-border);border-radius:var(--ris-radius-sm)}.create-form__grid{display:grid;grid-template-columns:1fr;gap:var(--ris-space-3)}.invite-box{display:flex;flex-direction:column;gap:var(--ris-space-2);padding:var(--ris-space-3);border:1px solid var(--ris-primary-border);background:var(--ris-primary-subtle);border-radius:var(--ris-radius-sm)}.invite-box__label{margin:0;font-size:var(--ris-font-size-xs);color:var(--ris-text-secondary)}.invite-box__url{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:var(--ris-font-size-xs);word-break:break-all}@media(min-width:640px){.create-form__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.status-card{background:var(--ris-surface);border:1px solid var(--ris-border);border-radius:var(--ris-radius-md);padding:var(--ris-space-6) var(--ris-space-4);display:flex;flex-direction:column;gap:var(--ris-space-2)}.status-card--working{border-color:var(--ris-primary-border);background:var(--ris-primary-subtle)}.status-card--break{border-color:var(--ris-warning);background:var(--ris-warning-bg)}.status-card__eyebrow{margin:0;font-size:var(--ris-font-size-xs);text-transform:uppercase;letter-spacing:.08em;color:var(--ris-text-muted)}.status-card__title{margin:0;font-size:var(--ris-font-size-xl);font-weight:650;font-variant-numeric:tabular-nums}.status-card__numbers{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--ris-space-3);margin-top:var(--ris-space-3);padding-top:var(--ris-space-3);border-top:1px solid var(--ris-border)}.number{display:flex;flex-direction:column}.number__label{font-size:var(--ris-font-size-xs);color:var(--ris-text-muted)}.number__value{font-size:var(--ris-font-size-lg);font-variant-numeric:tabular-nums}.number__value--negative{color:var(--ris-danger)}.number__value--positive{color:var(--ris-success)}.actions{display:flex;flex-direction:column;gap:var(--ris-space-2)}.button{display:inline-flex;align-items:center;justify-content:center;gap:var(--ris-space-2);min-height:44px;padding:0 var(--ris-space-4);border-radius:var(--ris-radius-sm);border:1px solid var(--ris-border-strong);background:var(--ris-surface);color:var(--ris-text);cursor:pointer;text-decoration:none;font-weight:500}.button:disabled{opacity:.6;cursor:default}.button--primary{background:var(--ris-primary);border-color:var(--ris-primary);color:#fff}.button--primary:hover:not(:disabled){background:var(--ris-primary-hover)}.button--tall{min-height:56px;font-size:var(--ris-font-size-md);font-weight:600}.button--ghost{background:transparent}.button--block{width:100%}.button--link{min-height:auto;padding:0;border:0;background:none;color:var(--ris-primary);font-size:var(--ris-font-size-sm);text-decoration:underline}.button--compact{min-height:36px;padding:0 var(--ris-space-3);font-size:var(--ris-font-size-sm)}.field{display:flex;flex-direction:column;gap:var(--ris-space-1)}.field__label{font-size:var(--ris-font-size-sm);color:var(--ris-text-secondary)}.field__input{min-height:44px;padding:0 var(--ris-space-3);border:1px solid var(--ris-border-strong);border-radius:var(--ris-radius-sm);background:var(--ris-surface);color:var(--ris-text);font-size:16px;width:100%}.field__input:focus-visible{outline:2px solid var(--ris-focus-ring);outline-offset:1px}.field__input--compact{min-height:36px;font-size:var(--ris-font-size-sm)}.field__error{margin:0;color:var(--ris-danger);font-size:var(--ris-font-size-sm)}.correction{display:grid;grid-template-columns:96px minmax(0,1fr) auto;gap:var(--ris-space-2);align-items:center;margin-top:var(--ris-space-2)}.event-list,.day-list,.plan-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.event-list__row{display:flex;align-items:baseline;gap:var(--ris-space-3);padding:var(--ris-space-2) 0;border-bottom:1px solid var(--ris-border)}.event-list__row:last-child{border-bottom:0}.event-list__row--stacked{flex-wrap:wrap}.event-list__time{font-variant-numeric:tabular-nums;color:var(--ris-text-muted);min-width:52px}.day-list__row{width:100%;display:grid;grid-template-columns:minmax(0,1fr) auto 88px;gap:var(--ris-space-3);align-items:center;padding:var(--ris-space-3) var(--ris-space-2);border:0;border-bottom:1px solid var(--ris-border);background:none;text-align:left;cursor:pointer;font-variant-numeric:tabular-nums}.day-list__row--active{background:var(--ris-primary-subtle)}.day-list__date{font-weight:500}.day-list__delta{text-align:right;color:var(--ris-text-muted)}.day-list__delta--negative{color:var(--ris-danger)}.plan-list__row{display:flex;justify-content:space-between;gap:var(--ris-space-3);padding:var(--ris-space-2) 0;border-bottom:1px solid var(--ris-border);font-size:var(--ris-font-size-sm)}.plan-list__row:last-child{border-bottom:0}.pill{border:1px solid var(--ris-border-strong);border-radius:var(--ris-radius-pill);padding:0 var(--ris-space-2);font-size:var(--ris-font-size-xs);color:var(--ris-text-muted);align-self:center}.pill--approved{border-color:var(--ris-success);color:var(--ris-success);background:var(--ris-success-bg)}.pill--submitted{border-color:var(--ris-primary-border);color:var(--ris-primary);background:var(--ris-primary-subtle)}.pill--rejected{border-color:var(--ris-danger);color:var(--ris-danger);background:var(--ris-danger-bg)}.pending-list{list-style:none;margin:0;padding:0}.pending-list__row{display:flex;align-items:center;justify-content:space-between;gap:var(--ris-space-3);padding:var(--ris-space-3) 0;border-bottom:1px solid var(--ris-border)}.pending-list__row:last-child{border-bottom:0}.pending-list__name{margin:0;font-weight:500}.pending-list__meta{margin:0;font-size:var(--ris-font-size-xs);color:var(--ris-text-muted)}.pending-list__actions{display:flex;gap:var(--ris-space-2)}.bonus{display:flex;align-items:baseline;justify-content:space-between;gap:var(--ris-space-3);padding:var(--ris-space-2) var(--ris-space-3);border-radius:var(--ris-radius-sm);background:var(--ris-surface-sunken);font-size:var(--ris-font-size-sm)}.bonus--final{background:var(--ris-success-bg);color:var(--ris-success)}.bonus__label{color:var(--ris-text-muted)}.bonus--final .bonus__label{color:inherit}.bonus__value{font-variant-numeric:tabular-nums;font-weight:500;text-align:right}.definition-list{margin:0;display:grid;gap:var(--ris-space-2)}.definition-list div{display:flex;justify-content:space-between;gap:var(--ris-space-3)}.definition-list dt{color:var(--ris-text-muted);font-size:var(--ris-font-size-sm)}.definition-list dd{margin:0;text-align:right}.segmented{display:grid;grid-auto-flow:column;gap:var(--ris-space-1);padding:var(--ris-space-1);background:var(--ris-surface-sunken);border-radius:var(--ris-radius-sm)}.segmented__item{min-height:40px;border:0;border-radius:var(--ris-radius-sm);background:none;color:var(--ris-text-secondary);font-size:var(--ris-font-size-sm);cursor:pointer}.segmented__item--active{background:var(--ris-surface);color:var(--ris-text);font-weight:600;box-shadow:var(--ris-shadow-1)}.year-switch{display:flex;align-items:center;gap:var(--ris-space-2)}.year-switch__value{font-variant-numeric:tabular-nums;font-weight:600}.holiday-form{display:grid;grid-template-columns:150px minmax(0,1fr) auto;gap:var(--ris-space-2);align-items:center}.holiday-list{list-style:none;margin:0;padding:0}.holiday-list__row{display:grid;grid-template-columns:120px minmax(0,1fr) auto;gap:var(--ris-space-3);align-items:center;padding:var(--ris-space-2) 0;border-bottom:1px solid var(--ris-border);font-size:var(--ris-font-size-sm)}.holiday-list__row:last-child{border-bottom:0}.holiday-list__date{color:var(--ris-text-muted)}@media(max-width:560px){.holiday-form{grid-template-columns:minmax(0,1fr)}}.timerbar{display:flex;align-items:center;justify-content:space-between;gap:var(--ris-space-3);padding:var(--ris-space-2) var(--ris-space-4);background:var(--ris-primary);color:#fff;position:sticky;top:55px;z-index:9}.timerbar__info{display:flex;align-items:center;gap:var(--ris-space-2);min-width:0}.timerbar__dot{width:8px;height:8px;border-radius:50%;background:var(--ris-accent);animation:pulse 1.6s ease-in-out infinite}.timerbar__time{font-variant-numeric:tabular-nums;font-weight:650}.timerbar__label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--ris-font-size-sm);opacity:.9}@keyframes pulse{50%{opacity:.35}}.project-list,.task-list{list-style:none;margin:0;padding:0}.project-list__row{width:100%;display:flex;align-items:center;justify-content:space-between;gap:var(--ris-space-3);padding:var(--ris-space-3) 0;border:0;border-bottom:1px solid var(--ris-border);background:none;text-align:left;cursor:pointer}.project-list__title{display:block;font-weight:500}.project-list__meta{display:block;font-size:var(--ris-font-size-xs);color:var(--ris-text-muted)}.project-list__count{font-variant-numeric:tabular-nums;color:var(--ris-text-muted);font-size:var(--ris-font-size-sm)}.tasks{display:flex;flex-direction:column;gap:var(--ris-space-3);padding:var(--ris-space-3) 0 var(--ris-space-3) var(--ris-space-3);border-left:2px solid var(--ris-primary-border);margin:var(--ris-space-2) 0 var(--ris-space-3)}.task-form{display:grid;grid-template-columns:minmax(0,1fr) 110px auto;gap:var(--ris-space-2)}.task-list__row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--ris-space-2);padding:var(--ris-space-2) 0;border-bottom:1px solid var(--ris-border)}.task-list__row:last-child{border-bottom:0}.task-list__main{display:flex;flex-direction:column;gap:2px;min-width:0}.task-list__status{font-size:var(--ris-font-size-xs);color:var(--ris-text-muted);text-transform:uppercase;letter-spacing:.06em}.task-list__status--in_progress{color:var(--ris-primary)}.task-list__status--blocked{color:var(--ris-danger)}.task-list__title{font-weight:500}.task-list__meta{font-size:var(--ris-font-size-xs);color:var(--ris-text-muted)}.task-list__comment{display:flex;gap:var(--ris-space-2);width:100%}@media(max-width:560px){.task-form{grid-template-columns:minmax(0,1fr)}}.task-list__title-button{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:0;border:0;background:none;text-align:left;cursor:pointer;color:inherit}.task-detail{width:100%;display:flex;flex-direction:column;gap:var(--ris-space-3);padding:var(--ris-space-3);margin-top:var(--ris-space-2);background:var(--ris-surface-subtle);border:1px solid var(--ris-border);border-radius:var(--ris-radius-sm)}.estimate-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--ris-space-3);margin:0}.estimate-row div{display:flex;flex-direction:column}.estimate-row dt{font-size:var(--ris-font-size-xs);color:var(--ris-text-muted)}.estimate-row dd{margin:0;font-variant-numeric:tabular-nums;font-size:var(--ris-font-size-md);font-weight:600}.status-row{display:flex;flex-wrap:wrap;gap:var(--ris-space-2)}.chip{min-height:32px;padding:0 var(--ris-space-3);border:1px solid var(--ris-border-strong);border-radius:var(--ris-radius-pill);background:var(--ris-surface);font-size:var(--ris-font-size-xs);cursor:pointer}.chip--active{background:var(--ris-primary);border-color:var(--ris-primary);color:#fff}.remaining-form{display:flex;align-items:flex-end;gap:var(--ris-space-2)}.entry-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--ris-space-1)}.entry-list__row{display:grid;grid-template-columns:84px 96px 64px minmax(0,1fr);gap:var(--ris-space-2);font-size:var(--ris-font-size-xs);color:var(--ris-text-secondary);padding:var(--ris-space-1) 0;border-bottom:1px solid var(--ris-border)}.entry-list__comment{color:var(--ris-text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.customer-form{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:var(--ris-space-2);align-items:center}.customer-list{list-style:none;margin:0;padding:0}.customer-list__row{padding:var(--ris-space-3) 0;border-bottom:1px solid var(--ris-border)}.customer-list__row:last-child{border-bottom:0}.customer-list__name{margin:0;font-weight:500}.customer-list__meta{margin:0;font-size:var(--ris-font-size-xs);color:var(--ris-text-muted)}.checkbox{display:flex;align-items:center;gap:var(--ris-space-2);font-size:var(--ris-font-size-sm);color:var(--ris-text-secondary)}@media(max-width:560px){.customer-form{grid-template-columns:minmax(0,1fr)}}.absence-form{display:flex;flex-direction:column;gap:var(--ris-space-3);padding:var(--ris-space-3);background:var(--ris-surface-subtle);border:1px solid var(--ris-border);border-radius:var(--ris-radius-sm)}.absence-list{list-style:none;margin:0;padding:0}.absence-list__row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:var(--ris-space-3);align-items:center;padding:var(--ris-space-2) 0;border-bottom:1px solid var(--ris-border);font-size:var(--ris-font-size-sm)}.absence-list__row:last-child{border-bottom:0}.absence-list__type{font-weight:500}.absence-list__range{color:var(--ris-text-muted);font-variant-numeric:tabular-nums}.dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0b122073;display:grid;place-items:center;padding:var(--ris-space-4);z-index:60}.dialog{width:min(560px,100%);max-height:90vh;overflow-y:auto;background:var(--ris-surface);border-radius:var(--ris-radius-md);padding:var(--ris-space-4);display:flex;flex-direction:column;gap:var(--ris-space-3);box-shadow:var(--ris-shadow-2)}.dialog__actions{display:flex;justify-content:flex-end;gap:var(--ris-space-2)}.field__input--area{padding:var(--ris-space-2) var(--ris-space-3);resize:vertical;line-height:1.45}.inbox-list{list-style:none;margin:0;padding:0}.inbox-list__row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--ris-space-2);padding:var(--ris-space-2) 0;border-bottom:1px solid var(--ris-border)}.inbox-list__row:last-child{border-bottom:0}.inbox-list__main{display:flex;flex-direction:column;gap:2px;min-width:0}.inbox-list__title{display:flex;align-items:center;gap:var(--ris-space-2);font-weight:500}.inbox-list__badge{padding:0 var(--ris-space-2);border-radius:var(--ris-radius-pill);background:var(--ris-danger);color:#fff;font-size:10px;letter-spacing:.06em}.inbox-list__meta{font-size:var(--ris-font-size-xs);color:var(--ris-text-muted)}.inbox-list__actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--ris-space-2)}.mail-list{list-style:none;margin:0;padding:0}.mail-list__row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--ris-space-2);padding:var(--ris-space-2) 0;border-bottom:1px solid var(--ris-border)}.mail-list__row:last-child{border-bottom:0}.mail-list__main{display:flex;flex-direction:column;gap:2px;min-width:0}.mail-list__subject{font-weight:500}.mail-list__meta{font-size:var(--ris-font-size-xs);color:var(--ris-text-muted)}.mail-list__actions{display:flex;flex-wrap:wrap;gap:var(--ris-space-2)}.muted{margin:0;color:var(--ris-text-muted);font-size:var(--ris-font-size-sm)}.hint{margin:0;color:var(--ris-warning);font-size:var(--ris-font-size-sm)}.center-screen{min-height:100%;display:grid;place-items:center;padding:var(--ris-space-4)}.auth__logo{height:32px;width:auto;margin-bottom:var(--ris-space-2)}.auth__title{font-size:var(--ris-font-size-lg);margin-bottom:var(--ris-space-1)}.auth__hint{margin:0;font-size:var(--ris-font-size-xs);color:var(--ris-text-muted)}.skeleton-block{height:120px;border-radius:var(--ris-radius-md);background:linear-gradient(90deg,var(--ris-surface-sunken),var(--ris-surface),var(--ris-surface-sunken));background-size:200% 100%;animation:shimmer 1.4s infinite}@keyframes shimmer{to{background-position:-200% 0}}@media(min-width:768px){.status-card__numbers{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(prefers-reduced-motion:reduce){.skeleton-block{animation:none}}
