:root{--background: #f6f8f7;--foreground: #17201d;--card: #ffffff;--card-foreground: #17201d;--muted: #f0f4f2;--muted-foreground: #6c7975;--border: #e4ebe8;--primary: #12644e;--primary-foreground: #ffffff;--accent: #e6f3ee;--ring: #277d65;--destructive: #d6584d;--success: #2d9b72;--warning: #c48a22;--radius: 12px;--shadow: 0 10px 28px rgba(25, 55, 46, .055);--member-green: #4eb18a;--member-blue: #71a8da;--member-gold: #d9ae44;--member-purple: #9a87cb;color-scheme:light}[data-theme=dark]{--background: #101922;--foreground: #f2f6f4;--card: #18232d;--card-foreground: #f2f6f4;--muted: #202e39;--muted-foreground: #9daead;--border: #2a3a45;--primary: #62c99a;--primary-foreground: #0d241b;--accent: #1d3b32;--ring: #72d5aa;--destructive: #fa8478;--success: #65d0a0;--warning: #e1b34f;--shadow: 0 12px 32px rgba(0, 0, 0, .18);--member-green: #67c89c;--member-blue: #72a8db;--member-gold: #d9ad3f;--member-purple: #a491d4;color-scheme:dark}*{box-sizing:border-box}html{background:var(--background);transition:background .25s ease}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;background:var(--background);color:var(--foreground);transition:background .25s ease,color .25s ease}button,input,select,textarea{font:inherit}button{transition:border-color .18s ease,background .18s ease,color .18s ease,transform .18s ease}a{color:var(--primary);text-decoration:none}.app{display:flex;min-height:100vh;min-height:100dvh;padding:16px;gap:16px}.side{width:240px;flex-shrink:0;border:1px solid var(--border);border-radius:9px;padding:20px 10px 12px;background:var(--card);box-shadow:var(--shadow);display:flex;flex-direction:column;height:calc(100vh - 32px);height:calc(100dvh - 32px)}.side-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 10px 22px;flex-shrink:0}.side-head .brand{padding:0}.brand{display:flex;align-items:center;gap:9px;color:var(--primary);font-weight:800;letter-spacing:-.02em}.brand-logo{width:31px;height:31px;flex:0 0 31px;display:block;border-radius:8px;object-fit:cover}.brand-mark .brand-icon{width:27px;height:27px;border:1.5px solid currentColor;border-radius:6px;display:inline-flex;align-items:center;justify-content:center;font-size:1.1rem}.brand-copy{font-size:1rem}.brand-copy span{font-weight:500}.nav{display:flex;flex-direction:column;gap:4px;flex:1;min-height:0;overflow-y:auto}.nav a,.settings-link{display:flex;align-items:center;gap:12px;width:100%;padding:10px 12px;color:var(--foreground);font-size:.83rem;font-weight:600;border-radius:9px}.nav a:hover,.settings-link:hover{background:var(--muted)}.nav a.active,.settings-link.active{background:var(--accent);color:var(--primary)}.nav-icon{width:18px;display:inline-flex;justify-content:center;align-items:center;font-size:1rem;color:var(--muted-foreground)}.nav a.active .nav-icon,.settings-link.active .nav-icon{color:var(--primary)}.side-bottom{margin-top:auto;padding-top:20px;flex-shrink:0}.topbar{display:none;position:fixed;top:0;left:0;right:0;z-index:75;align-items:center;gap:8px;min-height:52px;padding:env(safe-area-inset-top,0px) 12px 0;background:var(--card);border-bottom:1px solid var(--border);box-shadow:var(--shadow)}.menu-toggle{display:none;width:40px;height:40px;flex-shrink:0;align-items:center;justify-content:center;border:0;border-radius:10px;background:transparent;color:var(--foreground);cursor:pointer;font-size:1.3rem}.menu-toggle:hover,.menu-toggle:active{background:var(--muted)}.topbar-brand{display:flex;align-items:center;gap:8px;color:var(--foreground);font-weight:800;font-size:.95rem;letter-spacing:-.01em}.topbar-logo{width:30px;height:30px;flex:0 0 30px;border-radius:8px}.side-overlay{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;z-index:80}.side-head-actions{display:flex;align-items:center;gap:8px}.side-close{display:none;width:32px;height:32px;align-items:center;justify-content:center;border:0;border-radius:8px;background:transparent;color:var(--muted-foreground);cursor:pointer;font-size:1.15rem}.side-close:hover{background:var(--muted);color:var(--foreground)}.profile-chip{display:flex;align-items:center;gap:9px;width:100%;border:1px solid var(--border);border-radius:9px;padding:8px;margin-top:10px;background:var(--card);color:var(--foreground);cursor:pointer;text-align:left}.profile-chip:hover{border-color:var(--ring)}.profile-avatar{width:32px;height:32px;flex:0 0 32px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;color:#fff;font-size:.7rem;font-weight:800}.profile-copy{min-width:0;display:flex;flex-direction:column;flex:1}.profile-copy b{font-size:.72rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.profile-copy small{font-size:.62rem;color:var(--muted-foreground);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.profile-arrow{color:var(--muted-foreground);font-size:1.2rem}.main{flex:1;padding:0;min-width:0;max-width:1420px;margin:0 auto}.cabin-switch-wrap{position:relative;margin-top:10px}.cabin-switch-chip{display:flex;align-items:center;gap:9px;width:100%;border:1px solid var(--border);border-radius:9px;padding:8px;background:var(--card);color:var(--foreground);cursor:pointer;text-align:left}.cabin-switch-chip:hover{border-color:var(--ring)}.cabin-icon{color:var(--primary);display:inline-flex}.cabin-copy{min-width:0;display:flex;flex-direction:column;flex:1}.cabin-copy b{font-size:.72rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cabin-copy small{font-size:.62rem;color:var(--muted-foreground)}.cabin-arrow{color:var(--muted-foreground);display:inline-flex}.cabin-pop{position:absolute;bottom:calc(100% + 8px);left:0;min-width:260px;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 12px 34px #0000002e;padding:8px;z-index:70}.cabin-pop-head{font-size:.66rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--muted-foreground);padding:6px 10px 8px}.cabin-pop-empty{font-size:.72rem;color:var(--muted-foreground);padding:8px 10px 10px}.cabin-pop-item{display:flex;align-items:center;gap:10px;width:100%;border:none;background:transparent;color:var(--foreground);padding:8px 10px;border-radius:8px;cursor:pointer;text-align:left}.cabin-pop-item:hover{background:var(--muted)}.cabin-pop-item.active{background:var(--accent)}.cabin-pop-item.active .cabin-pop-name b,.cabin-pop-item.active .cabin-pop-icon,.cabin-pop-check{color:var(--primary)}.cabin-pop-icon{color:var(--muted-foreground);display:inline-flex}.cabin-pop-name{min-width:0;flex:1;display:flex;flex-direction:column}.cabin-pop-name b{font-size:.76rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cabin-pop-name small{font-size:.6rem;color:var(--muted-foreground)}.cabin-pop-check{display:inline-flex}.cabin-pop-item.new{border-top:1px solid var(--border);border-radius:0 0 8px 8px;margin-top:5px;padding-top:10px;color:var(--primary)}.cabin-pop-item.new .cabin-pop-icon{color:var(--primary)}.cabin-pop-new{padding:8px 10px;border-top:1px solid var(--border);margin-top:5px}.cabin-pop-newbtns{display:flex;gap:6px}.cabin-photo-edit{position:relative;height:150px;border-radius:10px;background:linear-gradient(145deg,#214d47,#789b69 58%,#d4ddad)}.cabin-photo-upload{position:absolute;bottom:10px;left:50%;transform:translate(-50%);display:inline-flex;align-items:center;gap:6px;background:#0000008c;color:#fff;font-size:.72rem;font-weight:700;padding:7px 13px;border-radius:20px;cursor:pointer;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.cabin-photo-upload:hover{background:#000000b3}.cabin-icons{display:inline-flex;gap:8px}.cabin-icon-tile{width:46px;height:46px;border:1.5px solid var(--border);border-radius:12px;background:var(--background);color:var(--muted-foreground);cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.cabin-icon-tile:hover{border-color:var(--ring);color:var(--foreground)}.cabin-icon-tile.active{border-color:var(--primary);color:var(--primary);background:var(--accent)}.hytte-section{margin-top:18px;padding-top:14px;border-top:1px solid var(--border)}.member-row{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--border)}.member-row:last-child{border-bottom:none}.member-row .nm{font-size:.82rem;font-weight:700;flex:1;min-width:0}.season-section{padding-bottom:2px}.season-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.season-icon{width:32px;height:32px;flex:0 0 32px;border-radius:9px;display:inline-flex;align-items:center;justify-content:center;color:var(--warning);background:#c48a2224}.season-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:14px}.season-fields label,.season-member-row{display:flex;flex-direction:column;gap:4px;color:var(--muted-foreground);font-size:.72rem;font-weight:700}.season-fields .inp,.season-member-row .inp{margin:0;padding:8px 9px;font-size:.8rem}.season-members{margin-top:14px;padding-top:12px;border-top:1px solid var(--border)}.season-label{font-size:.78rem;font-weight:800}.season-member-row{display:grid;grid-template-columns:28px 1fr minmax(150px,1.2fr);align-items:center;gap:8px;padding:6px 0}.season-family-number{width:24px;height:24px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;color:var(--primary);background:var(--accent);font-size:.7rem;font-weight:800}.season-family-name{color:var(--foreground);font-size:.76rem}.season-warning{color:var(--warning)}.season-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}.season-preview{margin-top:12px;border:1px solid var(--border);border-radius:10px;overflow:hidden;background:var(--background)}.season-preview-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:9px 10px;border-bottom:1px solid var(--border);font-size:.72rem}.season-preview-head span{color:var(--muted-foreground);font-size:.67rem}.season-preview-row{display:grid;grid-template-columns:72px minmax(0,1fr) auto;align-items:center;gap:8px;padding:8px 10px;border-bottom:1px solid var(--border);font-size:.72rem}.season-preview-row:last-child{border-bottom:none}.season-preview-row>span,.season-preview-row small{color:var(--muted-foreground)}.season-preview-row small{font-size:.66rem;white-space:nowrap}@media(max-width:620px){.season-fields{grid-template-columns:1fr}.season-member-row{grid-template-columns:28px minmax(0,1fr)}.season-member-row .inp{grid-column:2}.season-preview-row{grid-template-columns:1fr;gap:2px}}.card,.panel{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.card{padding:16px 18px}h2.h,.panel-heading h2{font-size:.82rem;font-weight:750;margin:0}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:15px}.more{background:none;border:none;color:var(--primary);font-size:.7rem;font-weight:700;cursor:pointer;padding:0}.more:hover{color:var(--ring)}.dashboard{display:flex;flex-direction:column;gap:14px}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.metric-card{min-height:108px;padding:15px 16px;border:1px solid var(--border);border-radius:var(--radius);background:var(--card);box-shadow:var(--shadow);position:relative;display:flex;flex-direction:column;align-items:flex-start}.metric-icon{position:absolute;top:14px;right:14px;width:35px;height:35px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:1.1rem}.metric-icon.green{color:var(--primary);background:#5bbb932e}.metric-icon.orange{color:#b77a15;background:#eeb15730}.metric-icon.purple{color:#8470b7;background:#9b87d32e}.metric-label{font-size:.67rem;margin-bottom:9px;color:var(--foreground)}.metric-card strong{font-size:1.05rem;line-height:1.2;letter-spacing:-.025em}.metric-card small{color:var(--muted-foreground);font-size:.67rem;margin-top:6px}.dashboard-main-grid{display:grid;grid-template-columns:minmax(0,1.62fr) minmax(260px,.88fr);gap:12px}.dashboard-bottom-grid{display:grid;grid-template-columns:minmax(0,1.22fr) minmax(210px,.68fr) minmax(220px,.84fr);gap:12px}.calendar-panel,.expense-panel,.maintenance-panel,.shortcuts-panel,.cabin-panel{padding:15px 16px}.calendar-actions{display:flex;align-items:center;gap:7px}.square-btn,.today-btn{border:1px solid var(--border);color:var(--foreground);background:var(--card);border-radius:8px;cursor:pointer}.square-btn{width:29px;height:29px;font-size:1.15rem;line-height:1}.today-btn{font-size:.68rem;padding:7px 11px}.square-btn:hover,.today-btn:hover{border-color:var(--ring);background:var(--muted)}.btn{padding:8px 14px;font-size:.76rem;font-weight:700;border-radius:8px;border:1px solid var(--border);cursor:pointer;background:var(--background);color:var(--foreground)}.btn.pri{background:var(--primary);color:var(--primary-foreground);border-color:var(--primary)}.btn.pri:hover{filter:brightness(1.08);transform:translateY(-1px)}.btn.compact{padding:7px 11px;font-size:.67rem}.btn.danger{background:transparent;color:var(--destructive);border-color:transparent}.btn.block{width:100%;padding:10px;font-size:.9rem}.btn:disabled{opacity:.55;cursor:default}.mini-weekdays,.mini-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.mini-weekdays{color:var(--muted-foreground);font-size:.61rem;font-weight:700;padding-bottom:7px;border-bottom:1px solid var(--border)}.mini-weekdays span{text-align:center}.mini-days{min-height:190px}.mini-day{min-height:48px;border-right:1px solid color-mix(in srgb,var(--border),transparent 35%);border-bottom:1px solid color-mix(in srgb,var(--border),transparent 35%);position:relative;padding:9px 6px 3px;font-size:.64rem}.mini-day b{font-weight:600;display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px}.mini-day.today b{color:#fff;background:var(--primary);border-radius:50%}.muted-day{background:var(--muted);opacity:.35}.booking-bar{display:block;height:22px;line-height:22px;padding:0 7px;border-radius:5px;margin:4px -3px 0;overflow:hidden;white-space:nowrap;color:#173a2f;font-size:.63rem;font-style:normal}[data-theme=dark] .booking-bar{color:#11221a}.booking-bar.pending{opacity:.72}.expense-list{display:flex;flex-direction:column}.expense-row{display:grid;grid-template-columns:29px minmax(0,1fr) auto;align-items:center;gap:8px;padding:11px 0;border-bottom:1px solid var(--border)}.expense-row:last-child{border-bottom:none}.expense-icon{width:27px;height:27px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;color:var(--primary);background:var(--accent);font-size:.9rem}.expense-row div{min-width:0;display:flex;flex-direction:column}.expense-row b{font-size:.71rem;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.expense-row small{color:var(--muted-foreground);font-size:.62rem;margin-top:3px}.expense-row>strong{font-size:.69rem;text-align:right;white-space:nowrap}.expense-row>strong small{display:block}.task-preview-row{display:grid;grid-template-columns:18px minmax(0,1fr) auto;align-items:center;gap:8px;padding:8px 4px;border-bottom:1px solid var(--border)}.task-preview-row:last-child{border-bottom:none}.task-checkbox{width:13px;height:13px;border:1px solid var(--muted-foreground);border-radius:3px}.task-preview-row div{min-width:0;display:flex;flex-direction:column}.task-preview-row b{font-size:.7rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.task-preview-row small{color:var(--muted-foreground);font-size:.6rem;margin-top:2px}.priority{font-size:.59rem;border-radius:5px;padding:4px 7px;white-space:nowrap}.priority.hi{color:var(--destructive);background:#d6584d21}.priority.med{color:var(--warning);background:#c48a2229}.priority.lo{color:var(--success);background:#2d9b7221}.shortcuts-panel>button{display:flex;align-items:center;gap:11px;width:100%;border:0;background:transparent;color:var(--foreground);cursor:pointer;text-align:left;font-size:.68rem;padding:9px 1px}.shortcuts-panel>button:hover{color:var(--primary);transform:translate(2px)}.shortcuts-panel>button span{color:var(--primary);font-size:1rem;width:18px;text-align:center}.cabin-photo-wrap{display:flex;align-items:center;justify-content:space-between;gap:16px}.cabin-copy{min-width:0}.cabin-copy h3{font-size:.88rem;margin:0 0 3px}.cabin-copy p{margin:0;color:var(--muted-foreground);font-size:.7rem}.cabin-photo{width:150px;height:150px;flex:0 0 150px;border-radius:12px;background:linear-gradient(145deg,#214d47,#789b69 58%,#d4ddad);background-size:contain;background-position:center;background-repeat:no-repeat}.cabin-edit{font-size:.68rem;padding:8px 12px;margin-top:10px;align-self:flex-start}.dashboard-footnote{display:flex;justify-content:space-between;color:var(--muted-foreground);font-size:.65rem;padding:1px 2px}.stat{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px}.stat .v{font-size:1.5rem;font-weight:800;margin-top:2px}.stat .l{font-size:.76rem;color:var(--muted-foreground);font-weight:600}.stat .d{font-size:.74rem;color:var(--muted-foreground);margin-top:3px}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px}.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.mt{margin-top:14px}.muted{color:var(--muted-foreground)}.small{font-size:.8rem}.hint{font-size:.75rem;color:var(--muted-foreground);margin-top:10px}.empty{color:var(--muted-foreground);font-size:.8rem;padding:14px 0;text-align:center}.center{display:flex;align-items:center;justify-content:center;min-height:100vh;color:var(--muted-foreground)}.error-actions{display:flex;gap:8px;justify-content:center;margin-top:12px}.row{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid var(--border);font-size:.86rem;gap:10px}.row:last-child{border-bottom:none}.dot{width:9px;height:9px;border-radius:50%;display:inline-block;margin-right:7px}.pill{font-size:.7rem;font-weight:700;padding:2px 8px;border-radius:20px;white-space:nowrap}.pill.hi{background:#dc262624;color:var(--destructive)}.pill.med{background:#d9770629;color:var(--warning)}.pill.lo{background:#16a34a26;color:var(--success)}.pill.rec{background:#2563eb24;color:var(--member-blue)}.iconbtn{width:38px;height:38px;border-radius:var(--radius);border:1px solid var(--border);background:var(--card);color:var(--foreground);cursor:pointer;font-size:1.05rem}.iconbtn:hover{border-color:var(--ring)}.avatar{width:38px;height:38px;border-radius:50%;border:1px solid var(--border);color:#fff;font-weight:700;font-size:.85rem;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.miniav,.bigavatar{border-radius:50%;color:#fff;font-weight:800;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.miniav{width:24px;height:24px;font-size:.62rem}.bigavatar{width:58px;height:58px;font-size:1.2rem}.bellwrap{position:relative}.bellwrap>.iconbtn{font-size:1rem;border:0;background:transparent}.badge{position:absolute;top:-3px;right:-3px;min-width:16px;height:16px;background:var(--destructive);color:#fff;font-size:.6rem;font-weight:800;border-radius:10px;padding:0 4px;display:flex;align-items:center;justify-content:center}.bellpanel{position:absolute;left:0;top:calc(100% + 8px);width:300px;max-width:calc(100vw - 24px);background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 10px 30px #00000024;z-index:50}.bellhead{display:flex;align-items:center;justify-content:space-between;padding:9px 12px;border-bottom:1px solid var(--border);font-size:.8rem;font-weight:700}.notif{display:flex;gap:9px;padding:9px 12px;border-bottom:1px solid var(--border);font-size:.8rem;line-height:1.35;align-items:flex-start}.notif:last-child{border-bottom:none}.notif.unread{background:var(--accent)}.theme-toggle{display:flex;align-items:center;gap:7px;border:1px solid var(--border);border-radius:8px;color:var(--foreground);background:var(--card);padding:8px 9px;font-size:.64rem;cursor:pointer;width:100%;margin-top:11px}.theme-toggle>span:first-child{color:var(--muted-foreground);font-size:.95rem}.theme-toggle i{width:27px;height:16px;border-radius:10px;margin-left:auto;background:var(--border);position:relative}.theme-toggle i:after{content:"";position:absolute;width:12px;height:12px;left:2px;top:2px;border-radius:50%;background:var(--card);box-shadow:0 1px 2px #00000038;transition:transform .2s ease}.theme-toggle i.is-on{background:var(--primary)}.theme-toggle i.is-on:after{transform:translate(11px)}.user-pop .theme-switch{width:27px;height:16px;flex:0 0 27px;border-radius:10px;background:var(--border);position:relative}.user-pop .theme-switch:after{content:"";position:absolute;width:12px;height:12px;left:2px;top:2px;border-radius:50%;background:var(--card);box-shadow:0 1px 2px #00000038;transition:transform .2s ease}.user-pop .theme-switch.is-on{background:var(--primary)}.user-pop .theme-switch.is-on:after{transform:translate(11px)}.app-version{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px 4px 2px;color:var(--muted-foreground);font-size:.59rem;letter-spacing:.02em}.app-version span{opacity:.78}.app-version b{color:var(--primary);font-weight:750}.inp{width:100%;padding:9px 11px;border-radius:var(--radius);border:1px solid var(--border);background:var(--background);color:var(--foreground);font-size:.88rem;margin-bottom:10px;font-family:inherit}.inp:focus{outline:2px solid var(--ring);outline-offset:-1px;border-color:transparent}textarea.inp{resize:vertical;min-height:64px}.err{font-size:.8rem;color:var(--destructive);margin:0 0 10px}.okmsg{font-size:.8rem;color:var(--success);margin:8px 0 0}.calhead{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.calnav button{width:30px;height:30px;border-radius:var(--radius);border:1px solid var(--border);background:var(--background);color:var(--foreground);cursor:pointer;font-size:1rem}.legend{display:flex;gap:14px;flex-wrap:wrap;font-size:.8rem;color:var(--muted-foreground);margin-bottom:8px}.calgrid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.wd{text-align:center;font-size:.72rem;font-weight:600;color:var(--muted-foreground);padding:2px 0}.day{min-height:44px;border-radius:calc(var(--radius) * .7);border:1px solid var(--border);background:var(--background);padding:3px 4px;font-size:.7rem;display:flex;flex-direction:column;gap:2px;cursor:pointer}.day.empty{background:transparent;border-color:transparent;cursor:default}.day .num{color:var(--muted-foreground);font-weight:600}.day:hover{border-color:var(--ring)}.chunk{border-radius:4px;color:#fff;font-size:.62rem;font-weight:600;padding:1px 3px;white-space:nowrap;overflow:hidden}.chunk.pending{opacity:.55;outline:1px dashed rgba(0,0,0,.35);outline-offset:1px}.req{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:.85rem;padding:9px 12px;margin-bottom:10px;background:var(--accent);border:1px solid var(--border);border-radius:var(--radius)}.reqbtns{display:flex;gap:6px;flex-shrink:0}.book-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:90;display:flex;align-items:center;justify-content:center;padding:18px;background:#080c1099;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.book-modal{width:min(430px,100%);max-height:calc(100vh - 40px);overflow-y:auto;background:var(--card);border:1px solid var(--border);border-radius:14px;box-shadow:0 18px 60px #00000073;padding:20px;display:flex;flex-direction:column;gap:12px}.book-modal h3{margin:0;font-size:.95rem}.book-range{margin:-4px 0 0;font-size:.8rem;font-weight:700;color:var(--muted-foreground)}.book-modal-fields{display:flex;flex-wrap:wrap;gap:12px}.book-modal-fields label{display:flex;flex-direction:column;gap:4px;font-size:.75rem;color:var(--muted-foreground);flex:1;min-width:150px}.book-modal input[type=date],.book-modal select{padding:8px 10px;border-radius:var(--radius);border:1px solid var(--border);background:var(--background);color:var(--foreground);font-size:.85rem;width:100%}.book-modal .hint,.book-modal .err{margin:0}.book-modal-actions{display:flex;gap:8px;justify-content:flex-end}.book-cal{border:1px solid var(--border);border-radius:12px;padding:10px 10px 12px;background:var(--background)}.book-cal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.book-cal-head b{font-size:.8rem;text-transform:capitalize}.book-cal-head button{width:26px;height:26px;display:flex;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:7px;background:var(--background);color:var(--muted-foreground);cursor:pointer}.book-cal-head button:hover{border-color:var(--ring);color:var(--foreground)}.book-cal-wd{display:grid;grid-template-columns:repeat(7,1fr);margin-bottom:4px}.book-cal-wd span{text-align:center;font-size:.58rem;font-weight:800;color:var(--muted-foreground);text-transform:capitalize;padding:2px 0}.book-cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.book-cal-day{aspect-ratio:1.25;display:flex;align-items:center;justify-content:center;font-size:.78rem;font-weight:600;border-radius:7px;border:1px solid transparent;background:transparent;color:var(--foreground);cursor:pointer}.book-cal-day:hover:not(:disabled){background:var(--muted)}.book-cal-day:disabled{color:var(--muted-foreground);opacity:.35;cursor:not-allowed;text-decoration:line-through}.book-cal-day.sel{background:var(--primary);color:var(--primary-foreground);font-weight:800;text-decoration:none}.book-cal-day.range{background:var(--accent)}.addrow{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}.addrow input,.addrow select,.exrow input,.exrow select{padding:7px 9px;border-radius:var(--radius);border:1px solid var(--border);background:var(--background);color:var(--foreground);font-size:.83rem;flex:1;min-width:110px}.task{display:flex;align-items:center;gap:11px;padding:10px 4px;border-bottom:1px solid var(--border);font-size:.86rem}.task:last-child{border-bottom:none}.task .chk{width:18px;height:18px;border-radius:5px;border:2px solid var(--border);cursor:pointer;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:.7rem;color:transparent;background:transparent}.task.done .chk{background:var(--success);border-color:var(--success);color:#fff}.task.done .tt{text-decoration:line-through;color:var(--muted-foreground)}.task .tt{flex:1}.task input[type=text],.task input[type=date],.task select{padding:6px 8px;font-size:.78rem;border-radius:8px;border:1px solid var(--border);background:var(--background);color:var(--foreground)}.task .task-edit-title{flex:1;min-width:130px}.task .who{font-size:.76rem;color:var(--muted-foreground)}.task .due{font-size:.76rem;color:var(--muted-foreground);min-width:74px;text-align:right}.exrow{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}.clist-tabs{display:flex;gap:6px;margin-bottom:12px}.clist-tabs button{padding:6px 14px;font-size:.82rem;font-weight:600;border-radius:var(--radius);border:1px solid var(--border);background:transparent;color:var(--muted-foreground);cursor:pointer}.clist-tabs button.active{background:var(--primary);color:var(--primary-foreground);border-color:var(--primary)}.clist-tools{display:flex;gap:6px;margin:-6px 0 12px}.clist-tools .btn{padding:5px 10px;font-size:.75rem}.prog{height:10px;background:var(--muted);border-radius:6px;overflow:hidden;margin-bottom:12px}.prog .fill{height:100%;background:var(--primary);border-radius:6px}.clitem{display:flex;align-items:center;gap:10px;padding:7px 2px;border-bottom:1px solid var(--border);font-size:.86rem}.clitem:last-child{border-bottom:none}.clitem .chk{width:18px;height:18px;border-radius:5px;border:2px solid var(--border);cursor:pointer;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:.7rem}.clitem.done .chk{background:var(--success);border-color:var(--success)}.clitem.done{color:var(--muted-foreground);text-decoration:line-through}.clitem .tt{flex:1}.cladd{display:flex;gap:8px;margin-top:12px}.cladd input{flex:1;padding:7px 9px;border-radius:var(--radius);border:1px solid var(--border);background:var(--background);color:var(--foreground);font-size:.83rem}.docgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.doc{display:flex;align-items:center;gap:11px;background:var(--background);border:1px solid var(--border);border-radius:var(--radius);padding:11px 12px}.doc .ic{font-size:1.3rem}.doc .tt{font-size:.86rem;font-weight:600}.doc .meta{font-size:.72rem;color:var(--muted-foreground);margin-top:1px}.photogrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:10px}.photo{position:relative;aspect-ratio:1 / 1;min-height:250px;border-radius:var(--radius);display:flex;align-items:flex-end;padding:0;color:#fff;font-size:.78rem;font-weight:700;text-shadow:0 1px 3px rgba(0,0,0,.45);overflow:hidden;cursor:pointer}.photo img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;transition:transform .3s ease}.photo:hover img{transform:scale(1.04)}.photo:focus-visible{outline:2px solid var(--ring);outline-offset:2px}.photo-fallback{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:var(--muted);color:var(--muted-foreground);font-size:1.7rem}.photo figcaption{position:relative;z-index:1;width:100%;padding:22px 9px 9px;background:linear-gradient(transparent,#0009)}.iconbtn.sm{width:34px;height:34px;font-size:1rem}.iconbtn:disabled{opacity:.45;cursor:default}.lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;align-items:center;justify-content:center;gap:8px;padding:18px;background:#080c10e0;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.lightbox-stage{position:relative;display:flex;flex-direction:column;align-items:center;gap:10px;max-width:min(94vw,1100px);max-height:92vh}.lightbox-img{display:block;max-width:min(92vw,1080px);max-height:82vh;object-fit:contain;border-radius:10px;box-shadow:0 18px 60px #0000008c}.lightbox-caption{display:flex;flex-direction:column;align-items:center;gap:2px;color:#fff;font-size:.82rem;font-weight:700;text-align:center}.lightbox-caption small{color:#ffffffa6;font-weight:500;font-size:.72rem}.lightbox-close{position:absolute;top:-14px;right:-14px;width:36px;height:36px;border-radius:50%;border:0;background:#ffffff24;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:1rem}.lightbox-close:hover{background:#ffffff47}.lightbox-del{position:absolute;top:-14px;left:-14px;height:36px;border-radius:18px;border:0;background:#dc26268c;color:#fff;cursor:pointer;display:flex;align-items:center;gap:6px;padding:0 12px;font-size:.78rem;font-weight:700}.lightbox-del:hover{background:#dc2626cc}.lightbox-nav{width:44px;height:44px;flex:0 0 44px;border-radius:50%;border:0;background:#ffffff1a;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .18s ease}.lightbox-nav:hover{background:#ffffff3d}.lightbox .photo-fallback{position:static;width:70vw;max-width:620px;aspect-ratio:4 / 3;border-radius:10px}.photo-upload-row{position:relative;display:flex;align-items:flex-end;gap:8px;flex-wrap:wrap;margin-bottom:14px}.album-field{font-size:.75rem;color:var(--muted-foreground);display:flex;align-items:center;gap:8px}.photo-album-select{width:auto;min-width:170px;flex:0 1 230px;margin-bottom:0;padding:8px 12px;font-size:.76rem;font-weight:700}.album-pop{position:absolute;top:calc(100% + 8px);left:0;z-index:60;width:270px;max-width:calc(100vw - 24px);background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 12px 34px #0000002e;padding:12px}.album-pop-head{font-size:.66rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--muted-foreground);margin-bottom:8px}.album-pop .inp{margin-bottom:8px}.album-pop-btns{display:flex;gap:6px}.album-pop-btns .btn{flex:1}.album-pop-btns .btn.danger{flex:0 0 auto;width:36px;padding:8px 0;display:inline-flex;align-items:center;justify-content:center}.albumbar{display:flex;flex-wrap:wrap;gap:7px;margin:2px 0 14px}.album-chip{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;font-size:.72rem;font-weight:700;border-radius:999px;border:1px solid var(--border);background:var(--background);color:var(--foreground);cursor:pointer;transition:border-color .18s ease,background .18s ease,color .18s ease}.album-chip span{color:var(--muted-foreground);font-size:.64rem;font-weight:700}.album-chip:hover{border-color:var(--ring)}.album-chip.active{background:var(--primary);border-color:var(--primary);color:var(--primary-foreground)}.album-chip.active span{color:inherit;opacity:.75}.addtile{border:2px dashed var(--border);background:transparent;color:var(--muted-foreground);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:.8rem;font-weight:600}.addtile:hover{border-color:var(--ring);color:var(--primary)}.gbform{display:flex;gap:9px;margin-bottom:16px;align-items:flex-end}.gbform textarea{flex:1;margin-bottom:0}.gbitem{display:flex;gap:11px;padding:12px 2px;border-bottom:1px solid var(--border)}.gbitem:last-child{border-bottom:none}.gbitem .who{font-size:.83rem;font-weight:700}.gbitem .when{font-size:.7rem;color:var(--muted-foreground);font-weight:400;margin-left:7px}.gbitem .msg{font-size:.85rem;margin-top:2px;line-height:1.45}table{width:100%;border-collapse:collapse;font-size:.84rem}td,th{padding:7px 8px;border-bottom:1px solid var(--border);text-align:left}th{font-size:.7rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted-foreground)}.num{text-align:right;font-variant-numeric:tabular-nums}.settle{margin-top:12px;padding:12px 14px;font-size:.85rem;line-height:1.6}.per{display:flex;gap:16px;flex-wrap:wrap;font-size:.8rem;color:var(--muted-foreground);margin-bottom:4px}.landing-page{min-height:100vh;overflow:hidden;background:var(--background)}.landing-nav{max-width:1180px;margin:0 auto;padding:26px 28px;display:flex;align-items:center;justify-content:space-between}.landing-brand{display:inline-flex;align-items:center;gap:10px;color:var(--foreground);font-size:1.02rem;font-weight:850;letter-spacing:-.035em}.landing-brand img{width:38px;height:38px;border-radius:11px;box-shadow:0 5px 16px #12644e26}.landing-brand>span>span{color:var(--muted-foreground);font-weight:500}.landing-login{display:inline-flex;align-items:center;gap:7px;padding:9px 14px;border:1px solid var(--border);border-radius:999px;background:color-mix(in srgb,var(--card),transparent 16%);color:var(--foreground);font-size:.76rem;font-weight:750}.landing-login:hover{border-color:var(--ring);color:var(--primary);transform:translateY(-1px)}.landing-page main{max-width:1180px;margin:0 auto;padding:0 28px}.landing-hero{min-height:610px;display:grid;grid-template-columns:minmax(0,.94fr) minmax(390px,1.06fr);align-items:center;gap:50px;padding:46px 0 66px}.landing-hero-copy{position:relative;z-index:2;max-width:580px}.landing-eyebrow,.landing-trust{display:inline-flex;align-items:center;gap:7px;color:var(--primary);font-size:.7rem;font-weight:800;letter-spacing:.045em;text-transform:uppercase}.landing-eyebrow{padding:7px 11px;border:1px solid color-mix(in srgb,var(--primary),transparent 75%);border-radius:999px;background:var(--accent)}.landing-hero h1{margin:21px 0 18px;font-size:clamp(3.5rem,7vw,6.25rem);line-height:.9;letter-spacing:-.09em;font-weight:850}.landing-hero h1 em{color:var(--primary);font-style:normal}.landing-hero-copy>p{max-width:470px;margin:0;color:var(--muted-foreground);font-size:1.02rem;line-height:1.65}.landing-actions{display:flex;align-items:center;gap:20px;flex-wrap:wrap;margin-top:30px}.landing-primary,.landing-secondary{display:inline-flex;align-items:center;gap:8px}.landing-primary{padding:12px 18px;border-radius:999px;font-size:.8rem}.landing-secondary{color:var(--foreground);font-size:.77rem;font-weight:750}.landing-secondary:hover{color:var(--primary)}.landing-trust{margin-top:25px;color:var(--muted-foreground);font-size:.67rem;letter-spacing:0;text-transform:none;font-weight:650}.landing-hero-art{position:relative;min-height:485px;display:grid;place-items:center}.landing-glow{position:absolute;width:390px;height:390px;border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--primary),transparent 78%),transparent 68%);filter:blur(8px)}.landing-art-card{position:relative;width:min(390px,78%);aspect-ratio:1;overflow:hidden;border:1px solid rgba(255,255,255,.25);border-radius:33% 33% 28% 28%;background:linear-gradient(145deg,#254f44,#0d3029);box-shadow:0 28px 60px #0c362b47,0 5px #ffffff1f inset;transform:rotate(3deg)}.landing-art-card:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(135deg,rgba(255,255,255,.15),transparent 35%,transparent 72%,rgba(0,0,0,.13));pointer-events:none}.landing-art-main img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover}.landing-art-caption{position:absolute;left:22px;right:22px;bottom:20px;z-index:2;display:flex;align-items:center;gap:7px;padding:9px 11px;border:1px solid rgba(255,255,255,.2);border-radius:10px;background:#08251f8f;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#f5f5d1;font-size:.65rem;font-weight:700}.landing-live-dot{width:7px;height:7px;flex:0 0 7px;border-radius:50%;background:#b9d58d;box-shadow:0 0 0 4px #b9d58d2e}.landing-float{position:absolute;z-index:3;display:flex;align-items:center;gap:9px;min-width:165px;padding:11px 13px;border:1px solid var(--border);border-radius:13px;background:color-mix(in srgb,var(--card),transparent 7%);box-shadow:0 14px 35px #19372e21;-webkit-backdrop-filter:blur(13px);backdrop-filter:blur(13px);color:var(--foreground)}.landing-float>span{display:flex;flex-direction:column;gap:2px}.landing-float b{font-size:.66rem}.landing-float small{color:var(--muted-foreground);font-size:.58rem}.landing-float>.material-symbols-outlined{color:var(--primary)}.landing-float-calendar{top:25px;right:1%;animation:landing-float 4s ease-in-out infinite}.landing-float-task{bottom:52px;left:2%;animation:landing-float 4s ease-in-out 1.2s infinite}@keyframes landing-float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.landing-proof{display:flex;align-items:center;justify-content:center;gap:12px;padding:20px 0 58px;color:var(--muted-foreground);font-size:.73rem}.landing-proof b{color:var(--foreground);font-size:.8rem}.landing-proof i{color:var(--primary);font-style:normal}.landing-features{padding:42px 0 80px;border-top:1px solid var(--border)}.landing-section-heading{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:28px}.landing-kicker{display:block;margin-bottom:9px;color:var(--primary);font-size:.67rem;font-weight:850;letter-spacing:.1em;text-transform:uppercase}.landing-section-heading h2,.landing-cta h2{max-width:520px;margin:0;font-size:clamp(1.7rem,3vw,2.6rem);line-height:1.02;letter-spacing:-.06em}.landing-feature-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.landing-feature{padding:25px 24px 27px;border:1px solid var(--border);border-radius:17px;background:var(--card);box-shadow:var(--shadow);transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease}.landing-feature:hover{transform:translateY(-5px);border-color:color-mix(in srgb,var(--primary),transparent 45%);box-shadow:0 18px 34px #19372e1a}.landing-feature-icon{display:inline-flex;align-items:center;justify-content:center;width:43px;height:43px;margin-bottom:26px;border-radius:12px;color:var(--primary);background:var(--accent)}.landing-feature h3{margin:0 0 8px;font-size:.93rem;letter-spacing:-.025em}.landing-feature p{margin:0;color:var(--muted-foreground);font-size:.77rem;line-height:1.6}.landing-cta{display:flex;align-items:center;justify-content:space-between;gap:28px;margin-bottom:72px;padding:40px 44px;border-radius:23px;color:#f5f5d1;background:linear-gradient(120deg,#173d33,#0d2b25);box-shadow:0 20px 45px #0c362b33}.landing-cta .landing-kicker{color:#b9d58d}.landing-cta h2{color:#f5f5d1}.landing-cta-button{display:inline-flex;align-items:center;gap:8px;flex:0 0 auto;padding:12px 17px;border:1px solid #b9d58d;border-radius:999px;color:#173d33;background:#b9d58d;font-size:.75rem;font-weight:800}.landing-cta-button:hover{background:#d5e7ac;transform:translateY(-2px)}.landing-footer{max-width:1180px;margin:0 auto;display:flex;justify-content:space-between;gap:20px;padding:22px 28px 30px;border-top:1px solid var(--border);color:var(--muted-foreground);font-size:.65rem}.pfhead{display:flex;align-items:center;gap:16px;margin-bottom:18px}.pfhead .nm{font-size:1.15rem;font-weight:800}.pfrow{display:flex;align-items:center;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--border);font-size:.87rem;gap:12px}.pfrow:last-child{border-bottom:none}.pfrow label{color:var(--muted-foreground);font-size:.8rem;flex-shrink:0}.switch{padding:4px 12px;font-size:.76rem;font-weight:700;border-radius:20px;border:1px solid var(--border);background:var(--muted);color:var(--muted-foreground);cursor:pointer}.switch.on{background:var(--success);border-color:var(--success);color:#fff}.seg{display:flex;gap:6px}.seg button{padding:5px 12px;font-size:.8rem;font-weight:600;border-radius:var(--radius);border:1px solid var(--border);background:var(--background);color:var(--muted-foreground);cursor:pointer}.seg button.active{background:var(--primary);color:var(--primary-foreground);border-color:var(--primary)}.loginwrap{min-height:100vh;display:flex;align-items:flex-start;justify-content:center;padding:70px 16px 40px;background:var(--background)}.logincard{width:100%;max-width:384px;padding:28px 30px}.login-brand{display:flex;align-items:center;gap:10px;margin-bottom:18px;font-size:1.25rem;font-weight:800;letter-spacing:-.02em;color:var(--primary)}.login-brand img{width:42px;height:42px;border-radius:11px;object-fit:cover}.logincard h2{font-size:1.15rem;margin:0 0 4px}.logincard .sub{font-size:.82rem;color:var(--muted-foreground);margin:0 0 18px}.demobox{font-size:.78rem;color:var(--muted-foreground);background:var(--muted);border-radius:var(--radius);padding:10px 12px;margin-top:16px;line-height:1.5}@media(max-width:860px){.landing-page main{padding:0 18px}.landing-nav{padding:20px 18px}.landing-hero{grid-template-columns:1fr;gap:10px;padding:36px 0 40px}.landing-hero h1{font-size:clamp(3.3rem,16vw,5.4rem)}.landing-hero-art{min-height:400px}.landing-art-card{width:min(360px,72%)}.landing-float-calendar{right:0}.landing-float-task{left:0}.landing-section-heading{display:block}.landing-feature-grid{grid-template-columns:1fr}.landing-cta{display:block;padding:30px 25px}.landing-cta-button{margin-top:25px}}@media(max-width:1120px){.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-bottom-grid{grid-template-columns:minmax(0,1fr) minmax(210px,.8fr)}.cabin-panel{grid-column:span 2}}@media(max-width:860px){.app{padding:10px;padding-top:calc(62px + env(safe-area-inset-top,0px));gap:10px}.topbar,.menu-toggle{display:flex}.side-overlay{display:block}.side-close{display:inline-flex}.side{position:fixed;top:0;left:0;bottom:0;width:280px;max-width:calc(100vw - 48px);height:100dvh;border:0;border-right:1px solid var(--border);border-radius:0 12px 12px 0;padding:20px 14px calc(14px + env(safe-area-inset-bottom,0px));box-shadow:10px 0 32px #00000038;z-index:90;transform:translate(-106%);visibility:hidden;transition:transform .26s cubic-bezier(.32,.72,0,1),visibility 0s linear .26s}.side.open{transform:translate(0);visibility:visible;transition:transform .26s cubic-bezier(.32,.72,0,1),visibility 0s}.side-head{padding:0 10px 20px}.side-bottom{padding-top:14px}.bellpanel{position:fixed;top:10px;right:10px;max-width:calc(100vw - 20px)}.main{padding:0}.dashboard-main-grid,.dashboard-bottom-grid{grid-template-columns:1fr}.cabin-panel{grid-column:auto}}@media(max-width:560px){.landing-nav{padding:16px 14px}.landing-page main{padding:0 14px}.landing-login{padding:8px 11px}.landing-hero-copy>p{font-size:.9rem}.landing-actions{align-items:flex-start;flex-direction:column;gap:16px}.landing-hero-art{min-height:320px}.landing-art-card{width:76%}.landing-float{min-width:145px;padding:9px 10px}.landing-float-task{bottom:20px}.landing-float-calendar{top:7px}.landing-proof{flex-wrap:wrap;gap:8px;padding-bottom:38px}.landing-proof>span{width:100%;text-align:center}.landing-footer{flex-direction:column;padding:20px 14px 25px}}@media(max-width:560px){.metric-grid{grid-template-columns:1fr 1fr;gap:8px}.metric-card{min-height:110px;padding:12px}.metric-card strong{font-size:.9rem;max-width:75%}.metric-icon{width:29px;height:29px;top:11px;right:11px}.calendar-actions .today-btn,.calendar-actions .square-btn{display:none}.calendar-actions{margin-left:auto}.panel-heading{align-items:flex-start}.mini-day{min-height:42px;padding-left:2px;padding-right:2px}.booking-bar{font-size:.48rem;padding:0 3px;margin-left:-2px;margin-right:-2px}.dashboard-footnote{flex-direction:column;gap:4px}}.kal-page{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:14px;align-items:start}.kal-main,.kal-side{display:flex;flex-direction:column;gap:12px;min-width:0}.kal-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.kal-navgroup{display:flex;align-items:center;gap:7px}.kal-navgroup .square-btn{width:32px;height:32px;border-radius:9px}.kal-navgroup .today-btn{padding:7px 13px}.kal-month-title{display:flex;align-items:center;gap:5px;font-size:.98rem;font-weight:800;letter-spacing:-.02em;padding-left:6px}.kal-month-title .drop{border:none;background:none;color:var(--muted-foreground);cursor:pointer;font-size:.8rem;padding:0}.kal-month-title .drop:hover{color:var(--foreground)}.kal-actions{display:flex;align-items:center;gap:9px}.view-seg{display:flex;gap:3px;padding:3px;background:var(--muted);border:1px solid var(--border);border-radius:11px}.view-seg button{border:none;background:transparent;padding:6px 13px;font-size:.73rem;font-weight:700;color:var(--muted-foreground);border-radius:8px;cursor:pointer}.view-seg button:hover{color:var(--foreground)}.view-seg button.active{background:var(--primary);color:var(--primary-foreground)}.kal-grid-wrap{position:relative;border:1px solid var(--border);border-radius:var(--radius);background:var(--card);box-shadow:var(--shadow);overflow:hidden}.kal-grid{position:relative;display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.kal-wd{height:33px;padding:10px 8px 9px;font-size:.68rem;font-weight:800;color:var(--muted-foreground);text-align:center;border-bottom:1px solid var(--border);background:color-mix(in srgb,var(--card),var(--muted) 38%)}.kal-cell{position:relative;min-height:96px;padding:7px 6px;cursor:pointer;border-right:1px solid color-mix(in srgb,var(--border),transparent 45%);border-bottom:1px solid color-mix(in srgb,var(--border),transparent 45%);background:var(--card)}.kal-cell:nth-child(7n){border-right:none}.kal-cell:nth-last-child(-n+7){border-bottom:none}.kal-cell:hover{background:color-mix(in srgb,var(--card),var(--accent) 45%)}.kal-cell.other{background:color-mix(in srgb,var(--card),var(--muted) 55%)}.kal-cell.other .kal-day-num{color:var(--muted-foreground);opacity:.55}.kal-day-num{position:relative;z-index:5;display:inline-flex;align-items:center;justify-content:center;min-width:23px;height:23px;border-radius:50%;font-size:.72rem;font-weight:700;color:var(--muted-foreground)}.kal-cell.today .kal-day-num{background:var(--primary);color:var(--primary-foreground);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary),transparent 78%)}.kal-cell.selected{outline:2px solid var(--ring);outline-offset:-2px;border-radius:4px}.kal-marks{position:relative;z-index:5;display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}.kal-marks span{display:inline-flex;align-items:center;gap:4px;font-size:.62rem;font-weight:800;padding:3px 7px;border-radius:6px;line-height:1}.kal-marks .mk-exp{color:var(--warning);background:#c48a2224}.kal-marks .mk-task{color:var(--success);background:#2d9b7221}.kal-bar{position:absolute;z-index:3;height:29px;display:flex;align-items:center;gap:8px;padding:0 10px;border-radius:8px;color:#fff;font-size:.71rem;font-weight:700;white-space:nowrap;overflow:hidden;box-shadow:0 2px 7px #00000038;cursor:pointer}[data-theme=light] .kal-bar{box-shadow:0 2px 7px #173a2f29}.kal-bar .av{width:21px;height:21px;flex:0 0 21px;border-radius:50%;background:#ffffff4d;color:#fff;font-size:.61rem;font-weight:800;display:inline-flex;align-items:center;justify-content:center}.kal-bar.pending{background:var(--muted);color:var(--muted-foreground);border:1px dashed var(--muted-foreground);box-shadow:none}.kal-bar.pending .av{background:var(--muted-foreground)}.kal-bar:hover{filter:brightness(1.08);z-index:6}.kal-legend{display:flex;flex-wrap:wrap;gap:6px 16px;align-items:center;padding:11px 14px;border:1px solid var(--border);border-radius:var(--radius);background:var(--card);font-size:.68rem;color:var(--muted-foreground)}.kal-legend span{display:inline-flex;align-items:center;gap:6px;font-weight:600}.kl-dot{width:9px;height:9px;border-radius:50%;display:inline-block;flex:0 0 9px}.kl-dot.pending{background:transparent;border:1px dashed var(--muted-foreground)}.pending-banner{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;padding:10px 14px;background:var(--accent);border:1px solid var(--border);border-radius:var(--radius);font-size:.76rem}.pending-banner>span:first-child{font-weight:700}.pending-banner .reqbtns{margin-left:4px}.pill.conf{background:#16a34a26;color:var(--success)}.pill.pend{background:#d9770629;color:var(--warning)}.kal-cabin-photo{width:84px;height:84px;flex:0 0 84px;border-radius:12px;background:linear-gradient(160deg,#1e465459,#1c523c8c),url(https://images.unsplash.com/photo-1510798831971-661eb04b3739?auto=format&fit=crop&w=700&q=80) center/contain no-repeat}.kal-cabin-head{display:flex;align-items:center;justify-content:space-between;gap:14px}.kal-cabin-copy{min-width:0}.kal-cabin-copy .kal-cabin-btn{margin-top:10px;align-self:flex-start}.kal-cabin-copy h3{font-size:.95rem;margin:0 0 2px;letter-spacing:-.01em}.kal-cabin-copy p{margin:0;color:var(--muted-foreground);font-size:.7rem}.btn.outline{background:transparent;color:var(--primary);border-color:color-mix(in srgb,var(--primary),transparent 55%)}.btn.outline:hover{border-color:var(--primary);background:var(--accent)}.filter-row{display:flex;align-items:center;gap:9px;width:100%;padding:8px 0;background:none;border:none;color:var(--foreground);font-size:.74rem;font-weight:600;cursor:pointer;text-align:left}.filter-row+.filter-row{border-top:1px solid var(--border)}.filter-row:hover{color:var(--primary)}.fcheck{width:15px;height:15px;flex:0 0 15px;border:1.5px solid var(--border);border-radius:4.5px;display:inline-flex;align-items:center;justify-content:center;color:#fff;font-size:.58rem}.filter-row.on .fcheck{background:var(--primary);border-color:var(--primary)}.filter-row .fd{width:9px;height:9px;border-radius:50%;margin-left:auto}.up-item{display:flex;align-items:center;gap:10px;padding:9px 0}.up-item+.up-item{border-top:1px solid var(--border)}.up-dot{width:9px;height:9px;flex:0 0 9px;border-radius:50%}.up-item>div{min-width:0;flex:1}.up-item b{font-size:.73rem;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.up-item small{display:block;color:var(--muted-foreground);font-size:.64rem;margin-top:2px}.up-nights{font-size:.6rem;font-weight:800;color:var(--muted-foreground);background:var(--muted);border:1px solid var(--border);padding:3px 9px;border-radius:20px;white-space:nowrap}.up-footer{display:block;width:100%;margin-top:6px;text-align:center}.kal-list-row{display:grid;grid-template-columns:10px minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px 4px;border-bottom:1px solid var(--border)}.kal-list-row:last-child{border-bottom:none}.kal-list-row b{font-size:.8rem}.kal-list-row small{color:var(--muted-foreground);font-size:.68rem;display:block;margin-top:2px}@media(max-width:1180px){.kal-page{grid-template-columns:1fr}}@media(max-width:720px){.kal-actions .view-seg button{padding:6px 10px}.kal-navgroup .square-btn{display:none}.kal-bar{font-size:.56rem;padding:0 5px}.kal-bar .av{display:none}}@font-face{font-family:Material Symbols Outlined;font-style:normal;font-weight:100 700;font-display:block;src:url(/fonts/material-symbols-outlined.woff2) format("woff2")}.material-symbols-outlined{font-family:Material Symbols Outlined;font-weight:400;font-style:normal;font-size:1.15em;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;vertical-align:-.12em;-webkit-user-select:none;user-select:none;-webkit-font-smoothing:antialiased}.seg button{display:inline-flex;align-items:center;gap:5px}
