@import "https://api.fontshare.com/v2/css?f[]=satoshi@400,500,700&display=swap";*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{color:#1d1c1a;background:#f7f6f2;font-family:Satoshi,Segoe UI,sans-serif}:root{--bg:#f7f6f2;--surface:#f9f8f5;--surface-alt:#fcfbf8;--text:#1d1c1a;--muted:#00000094;--border:#00000014;--accent:#01696f;--danger:#ba4a46;--radius-card:8px;--radius-control:6px;--radius-pill:9999px;--shadow-card:0 1px 3px #0000000f;--shadow-hover:0 8px 18px #0000001c;--font-sans:"Satoshi", "Segoe UI", sans-serif}[data-theme=dark]{--bg:#1c1b19;--surface:#22211f;--surface-alt:#2a2926;--text:#ece5d8;--muted:#ece5d8b3;--border:#ffffff1f;--accent:#4f98a3;--danger:#df7f77;--shadow-card:0 1px 3px #0000004d;--shadow-hover:0 8px 18px #00000075}.app-shell{background:radial-gradient(circle at 16% -6%, #01696f14, transparent 48%), radial-gradient(circle at 88% 110%, #01696f12, transparent 42%), var(--bg);min-height:100svh;color:var(--text);font-family:var(--font-sans);padding:12px 16px 128px;font-size:16px}.app-header{z-index:20;border:1px solid var(--border);border-radius:var(--radius-card);background:color-mix(in srgb, var(--surface), transparent 5%);max-width:640px;box-shadow:var(--shadow-card);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);align-items:center;gap:12px;margin:0 auto 14px;padding:14px 16px;display:flex;position:sticky;top:0}.app-header-brand{flex:none;align-items:center;gap:10px;display:flex}.app-header-user{flex:0 auto;align-items:center;gap:8px;min-width:0;margin-left:auto;display:flex}.app-header-welcome{color:var(--text);white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:600;overflow:hidden}.app-logo{color:var(--accent)}.app-header h1{letter-spacing:.01em;margin:0;font-size:22px;font-weight:700}.theme-toggle,.logout-btn,.create-toggle-btn,.floating-create-btn,.widget-btn,.command-form button,.calendar-month-nav-btn,.calendar-now-btn{appearance:none;border:1px solid var(--border);border-radius:var(--radius-control);background:var(--surface-alt);color:var(--text);font:inherit;cursor:pointer;transition:all .18s ease-out}.theme-toggle{background:color-mix(in srgb, var(--surface-alt), var(--accent) 10%);padding:8px 12px;font-size:14px}.theme-toggle:hover,.logout-btn:hover,.create-toggle-btn:hover,.floating-create-btn:hover,.widget-btn:hover,.command-form button:hover,.calendar-month-nav-btn:hover,.calendar-now-btn:hover{box-shadow:var(--shadow-hover);transform:translateY(-1px)}.app-content{max-width:640px;margin:0 auto}.sync-status,.form-mode,.widget-status,.widget-date,.widget-unit,.calendar-title,.calendar-details-title,.calendar-day-job-count,.calendar-day-empty-text,.calendar-weekday{color:var(--muted);font-size:14px}.user-name{color:var(--text);font-weight:600}.logout-btn{padding:8px 12px}.create-popup-overlay{z-index:60;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#00000061;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.create-popup-card{border:1px solid var(--border);background:color-mix(in srgb, var(--surface), transparent 1%);border-radius:14px;width:min(520px,100%);max-height:min(82svh,720px);padding:16px;overflow:auto;box-shadow:0 24px 48px #0000003d}.sync-status{margin:0 0 10px}.sync-status-error{color:var(--danger)}.create-toggle-btn{background:var(--accent);color:#f5fffe;border-color:#0000;width:100%;min-height:44px}.floating-create-btn{z-index:40;background:var(--accent);color:#f5fffe;width:58px;height:58px;min-height:0;box-shadow:0 10px 24px color-mix(in srgb, var(--accent), transparent 70%), 0 0 0 0 color-mix(in srgb, var(--accent), transparent 66%);border-color:#0000;border-radius:999px;place-items:center;padding:0;font-size:34px;line-height:1;animation:2.4s ease-in-out infinite floating-create-pulse;display:grid;position:fixed;bottom:24px;right:18px}@keyframes floating-create-pulse{0%,to{box-shadow:0 10px 24px color-mix(in srgb, var(--accent), transparent 70%), 0 0 0 0 color-mix(in srgb, var(--accent), transparent 66%);transform:scale(1)}50%{box-shadow:0 12px 26px color-mix(in srgb, var(--accent), transparent 66%), 0 0 0 12px color-mix(in srgb, var(--accent), transparent 90%);transform:scale(1.04)}}.command-form{grid-template-columns:1fr 1fr auto;align-items:end;gap:8px;display:grid}.command-form-minimal{grid-template-columns:1fr}.form-mode{grid-column:1/-1;margin:0 0 4px}.command-form label,.widget-edit-form label,.calendar-input-label{color:var(--muted);gap:6px;font-size:14px;display:grid}.command-form input,.command-form select,.widget-edit-form input,.widget-edit-form select,.calendar-input{border:1px solid var(--border);border-radius:var(--radius-control);background:var(--surface-alt);width:100%;min-height:42px;color:var(--text);font:inherit;padding:10px 12px}.command-form input:focus-visible,.widget-edit-form input:focus-visible,.calendar-input:focus-visible{outline:2px solid color-mix(in srgb, var(--accent), transparent 60%);outline-offset:1px}.create-actions{gap:8px;display:grid}.command-form-minimal .create-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.command-form button{min-height:42px;padding:0 12px}.command-form button:disabled,.widget-btn:disabled{opacity:.45;cursor:not-allowed}.calendar-panel,.calendar-page,.calendar-details{border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface);box-shadow:var(--shadow-card)}.calendar-panel{margin-bottom:12px;padding:10px}.panel-actions{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.panel-actions .create-toggle-btn{justify-content:center;align-items:center;gap:6px;display:inline-flex}.panel-action-icon{flex:none;width:16px;height:16px}.secondary-btn{background:color-mix(in srgb, var(--surface-alt), var(--accent) 12%);border-color:var(--border);color:var(--text)}.calendar-page{--calendar-today-accent:#b45309;margin-bottom:12px;padding:14px}.room-calendar-page{--calendar-today-accent:#be123c}.calendar-header{flex-wrap:wrap;justify-content:space-between;align-items:end;gap:8px;display:flex}.calendar-month-label{color:var(--text);margin:2px 0 0;font-size:16px;font-weight:600}.calendar-controls{align-items:end;gap:8px;display:flex}.calendar-month-picker{align-items:center;gap:6px;display:flex}.calendar-month-nav-btn,.calendar-now-btn{min-height:38px;padding:0 10px}.calendar-grid-scroll{margin-top:12px}.calendar-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;display:grid}.calendar-weekday{text-align:center;border-radius:var(--radius-control);margin:0;padding:6px}.calendar-day{border:1px solid var(--border);border-radius:var(--radius-control);background:var(--surface-alt);color:var(--text);text-align:left;align-content:start;gap:4px;min-height:78px;padding:8px;transition:all .18s ease-out;display:grid}.calendar-day:hover{box-shadow:var(--shadow-hover);transform:translateY(-1px)}.calendar-day-has-tasks,.calendar-day-selected,.calendar-day-today{border-color:color-mix(in srgb, var(--accent), transparent 35%)}.calendar-day-has-tasks .calendar-day-job-count{color:var(--accent)}.calendar-day-today{border-color:color-mix(in srgb, var(--calendar-today-accent), transparent 28%);background:color-mix(in srgb, var(--surface-alt), var(--calendar-today-accent) 12%)}.calendar-day-today .calendar-day-number{color:var(--calendar-today-accent)}.calendar-day-empty{opacity:.3}.calendar-day-number{margin:0;font-size:14px}.calendar-day-job-count{margin:0;line-height:1.15}.calendar-details{margin-top:10px;padding:10px}.calendar-details-title{margin:0 0 8px}.calendar-details-list{gap:6px;margin:0;padding:0;list-style:none;display:grid}.calendar-details-item{border:1px solid var(--border);border-radius:var(--radius-control);background:var(--surface-alt);padding:8px 10px}.calendar-actions{margin-top:10px}.room-footer-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:8px;display:grid}.widget-grid{grid-template-columns:1fr;gap:10px;display:grid}.ios-widget{border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface);box-shadow:var(--shadow-card);gap:10px;padding:12px;transition:transform .18s ease-out,box-shadow .18s ease-out,opacity .18s ease-out;animation:.22s ease-out row-in;display:grid}.ios-widget:hover{box-shadow:var(--shadow-hover);transform:translateY(-1px)}.widget-top-row{grid-template-columns:auto 1fr auto;align-items:start;gap:10px;display:grid}.task-check{border:1px solid color-mix(in srgb, var(--accent), transparent 50%);background:0 0;border-radius:999px;align-self:center;place-items:center;width:24px;height:24px;padding:0;transition:transform .18s ease-out,background-color .18s ease-out,border-color .18s ease-out;display:grid}.task-check-dot{background:color-mix(in srgb, var(--accent), transparent 75%);border-radius:999px;width:12px;height:12px;transition:transform .18s ease-out,background-color .18s ease-out}.task-check:hover{border-color:var(--accent);background:color-mix(in srgb, var(--accent), transparent 84%);transform:scale(1.08)}.task-check:hover .task-check-dot{background:var(--accent);transform:scale(1.15)}.widget-meta{gap:4px;min-width:0;display:grid}.command-title{color:var(--text);overflow-wrap:anywhere;margin:0;font-size:16px;font-weight:600}.command-prefix{color:var(--accent);margin-right:4px}.command-title-text{text-decoration:none}.widget-date,.widget-status,.widget-unit{margin:0}.widget-time-right{text-align:right;justify-items:end;gap:2px;display:grid}.widget-count-row{align-items:baseline;gap:6px;display:flex}.widget-count{color:var(--text);margin:0;font-size:clamp(1.3rem,3.2vw,1.9rem);font-weight:700}.widget-unit{font-size:12px}.widget-actions{gap:8px;display:flex}.widget-btn{min-height:34px;padding:6px 10px;font-size:14px}.widget-btn-done{background:color-mix(in srgb, var(--accent), transparent 80%);border-color:color-mix(in srgb, var(--accent), transparent 56%)}.widget-btn-delete{color:var(--danger)}.widget-edit-form{gap:8px;display:grid}.widget-warning{border-left:3px solid #ca8a04}.done-page{border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface);box-shadow:var(--shadow-card);gap:12px;padding:14px;display:grid}.done-header{gap:4px;display:grid}.done-title{color:var(--accent);margin:0;font-size:14px}.done-subtitle{color:var(--muted);margin:0;font-size:14px}.done-widget{opacity:.72}.done-task-title .command-title-text{text-decoration:line-through}.widget-due-today{border-left:3px solid var(--danger)}.room-page{border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface);box-shadow:var(--shadow-card);gap:12px;padding:14px;display:grid}.room-header{flex-wrap:wrap;justify-content:space-between;align-items:start;gap:12px;display:flex}.room-title{color:var(--accent);margin:0;font-size:14px}.room-heading{color:var(--text);margin:4px 0 0;font-size:22px;font-weight:700}.room-subtitle{color:var(--muted);margin:6px 0 0;font-size:14px}.room-header-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.room-action-btn{appearance:none;border:1px solid var(--border);border-radius:var(--radius-control);min-height:35px;font:inherit;cursor:pointer;padding:0 12px;transition:all .18s ease-out}.room-action-btn:hover:not(:disabled){box-shadow:var(--shadow-hover);transform:translateY(-1px)}.room-action-btn:disabled{opacity:.45;cursor:not-allowed}.room-action-btn-refresh{background:color-mix(in srgb, var(--surface-alt), var(--accent) 16%);color:var(--text)}.room-action-btn-leave{background:color-mix(in srgb, var(--danger), transparent 88%);border-color:color-mix(in srgb, var(--danger), transparent 50%);color:var(--danger)}.room-color-panel{border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface-alt);gap:12px;padding:14px;display:grid}.room-color-picker{grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;display:grid}.room-color-swatch{border:1px solid color-mix(in srgb, var(--room-swatch-color), transparent 52%);border-radius:var(--radius-control);background:color-mix(in srgb, var(--room-swatch-color), white 82%);cursor:pointer;place-items:center;min-height:42px;transition:transform .18s ease-out,box-shadow .18s ease-out,border-color .18s ease-out;display:grid}.room-color-swatch:hover{box-shadow:var(--shadow-hover);transform:translateY(-1px)}.room-color-swatch-selected{outline:2px solid color-mix(in srgb, var(--room-swatch-color), black 10%);outline-offset:1px}.room-color-swatch-dot{background:var(--room-swatch-color);border-radius:999px;width:18px;height:18px;box-shadow:inset 0 0 0 2px #ffffff8c}.room-color-note{color:var(--muted);margin:0;font-size:14px}.room-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.room-card{border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface-alt);gap:10px;padding:14px;display:grid}.room-card-title{color:var(--accent);margin:0;font-size:14px}.room-card-copy{color:var(--muted);margin:0;line-height:1.45}.room-join-form{gap:10px;display:grid}.room-join-form input{border:1px solid var(--border);border-radius:var(--radius-control);background:var(--surface);width:100%;min-height:42px;color:var(--text);font:inherit;padding:10px 12px}.room-summary{border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface-alt);gap:6px;padding:10px 12px;display:grid}.room-summary-row{flex-wrap:wrap;gap:6px;display:flex}.room-pill{border-radius:var(--radius-pill);border:1px solid var(--border);background:var(--surface);min-height:26px;color:var(--text);align-items:center;padding:0 9px;font-size:12px;display:inline-flex}.room-task-list{gap:10px;display:grid}.room-empty-state{border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface-alt);gap:6px;padding:14px;display:grid}.room-task-item{border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface-alt);justify-content:space-between;align-items:start;gap:12px;padding:12px;display:flex}.room-task-main{gap:4px;min-width:0;display:grid}.room-task-meta{text-align:right;justify-items:end;gap:6px;display:grid}.room-task-badge{border-radius:var(--radius-pill);border:1px solid color-mix(in srgb, var(--accent), transparent 45%);background:color-mix(in srgb, var(--accent), transparent 88%);min-height:26px;color:var(--accent);text-transform:uppercase;letter-spacing:.04em;align-items:center;padding:0 10px;font-size:12px;display:inline-flex}.room-calendar-page .calendar-day-has-tasks{border-color:color-mix(in srgb, var(--room-day-accent), transparent 35%);background:color-mix(in srgb, var(--surface-alt), var(--room-day-accent) 8%)}.room-calendar-page .calendar-day-has-tasks .calendar-day-job-count{color:var(--room-day-accent)}.room-calendar-page .calendar-day-today{border-color:color-mix(in srgb, var(--calendar-today-accent), transparent 24%);background:color-mix(in srgb, var(--surface-alt), var(--calendar-today-accent) 14%)}.room-calendar-page .calendar-day-today .calendar-day-number{color:var(--calendar-today-accent)}.room-day-color-dots{flex-wrap:wrap;gap:4px;display:flex}.room-day-color-dot{background:var(--room-task-accent);border-radius:999px;width:8px;height:8px}.room-day-color-more{color:var(--muted);font-size:11px}.room-calendar-detail-item{align-items:center;gap:8px;display:flex}.room-detail-color-dot{background:var(--room-task-accent);border-radius:999px;flex:none;width:10px;height:10px}.empty-state-icon{color:color-mix(in srgb, var(--accent), var(--text) 25%)}.calendar-close-btn{width:100%}@keyframes row-in{0%{opacity:0;transform:translate(-8px)}to{opacity:1;transform:translate(0)}}@media (width<=720px){.app-shell{padding:10px 10px 136px}.create-popup-overlay{padding:12px}.create-popup-card{width:100%;max-height:88svh;padding:14px}.floating-create-btn{width:54px;height:54px;font-size:32px;bottom:40px;right:30px}.app-header{gap:10px;padding:12px}.app-header-user{gap:6px}.app-header-welcome{max-width:120px;font-size:12px}.theme-toggle,.logout-btn{padding:7px 9px;font-size:12px}.command-form,.command-form-minimal .create-actions{grid-template-columns:1fr}.create-actions{grid-template-columns:1fr 1fr}.panel-actions{grid-template-columns:repeat(3,minmax(0,1fr))}.panel-actions .create-toggle-btn{white-space:nowrap;min-width:0;padding-inline:8px;font-size:12px}.panel-action-icon{width:14px;height:14px}.calendar-controls{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:6px;display:grid}.calendar-input-label{min-width:0}.calendar-month-picker{align-items:center;min-width:0;display:flex}.calendar-month-picker .calendar-month-nav-btn,.calendar-month-picker .calendar-input{height:38px;min-height:38px}.calendar-month-picker .calendar-input{flex:auto;width:auto;min-width:0;padding-block:0}.calendar-now-btn{white-space:nowrap}.room-header-actions{width:100%}.room-action-btn{flex:1 1 0}.room-footer-actions{grid-template-columns:1fr}.room-color-picker{grid-template-columns:repeat(3,minmax(0,1fr))}.room-grid{grid-template-columns:1fr}.room-task-item{flex-direction:column}.room-task-meta{text-align:left;justify-items:start}.widget-top-row{grid-template-columns:auto minmax(0,1fr) auto}.widget-time-right{text-align:right;grid-column:3;justify-items:end}.calendar-grid{gap:4px}.calendar-day{min-height:66px;padding:6px}}.login-container{background:radial-gradient(circle at 15% 0%, #01696f14, transparent 42%), radial-gradient(circle at 85% 100%, #01696f14, transparent 38%), var(--bg,#f7f6f2);place-items:center;min-height:100svh;padding:20px;display:grid}.login-box{border:1px solid var(--border,#00000014);background:var(--surface,#f9f8f5);border-radius:8px;width:min(420px,100%);padding:22px;box-shadow:0 1px 3px #0000000f}.login-box h1{color:var(--text,#1d1c1a);margin:0 0 16px;font-size:22px}.form-group{gap:6px;margin-bottom:12px;display:grid}.form-group label{color:var(--muted,#00000094);font-size:14px}.form-group input{border:1px solid var(--border,#00000014);background:var(--surface-alt,#fcfbf8);min-height:42px;color:var(--text,#1d1c1a);font:inherit;border-radius:6px;padding:10px 12px}.form-group input:focus-visible{outline:2px solid color-mix(in srgb, var(--accent,#01696f), transparent 60%);outline-offset:1px}.error-message{border:1px solid color-mix(in srgb, var(--danger,#ba4a46), transparent 70%);color:var(--danger,#ba4a46);background:color-mix(in srgb, var(--danger,#ba4a46), transparent 90%);border-radius:6px;margin-bottom:10px;padding:8px 10px;font-size:14px}.login-button{background:var(--accent,#01696f);color:#f5fffe;width:100%;min-height:44px;font:inherit;cursor:pointer;border:1px solid #0000;border-radius:6px;transition:transform .18s ease-out,box-shadow .18s ease-out,opacity .18s ease-out}.login-button:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 8px 18px #0000001c}.login-button:disabled{opacity:.6;cursor:not-allowed}.auth-toggle{border-top:1px solid var(--border,#00000014);text-align:center;margin-top:14px;padding-top:14px}.auth-toggle p{color:var(--muted,#00000094);margin:0;font-size:14px}.toggle-link{color:var(--accent,#01696f);font:inherit;cursor:pointer;background:0 0;border:0;padding:0}[data-theme=dark] .login-button{color:#eef8fa}
