:root{--bg:#fff;--fg:#000;--muted:#666;--border:#e0e0e0;--card:#f9f9f9;--hover:#f0f0f0;--accent:#132a1f;--accent-soft:#132a1f14;--font-sans:"Helvetica Neue", Helvetica, Arial, sans-serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, monospace}*{box-sizing:border-box;border-radius:0!important}html{scroll-behavior:smooth}body{background:radial-gradient(circle at top right, #132a1f1a, transparent 24%), linear-gradient(180deg, #00000008, transparent 10%), var(--bg);color:var(--fg);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;min-height:100vh;margin:0;font-size:15px;line-height:1.6}body:before{content:"";pointer-events:none;z-index:0;background-image:linear-gradient(#00000008 1px,#0000 1px),linear-gradient(90deg,#00000008 1px,#0000 1px);background-size:32px 32px;position:fixed;inset:0;-webkit-mask-image:linear-gradient(#00000073,#0000 85%);mask-image:linear-gradient(#00000073,#0000 85%)}a{color:inherit;text-decoration:none}button{cursor:pointer;font-family:inherit}input,textarea,select{background:var(--bg);color:var(--fg);border:1px solid var(--border);width:100%;padding:.6rem .75rem;font-family:inherit;font-size:.9rem;transition:border-color .2s}input:focus,textarea:focus,select:focus{border-color:var(--fg);outline:none}label{letter-spacing:2px;text-transform:uppercase;color:var(--muted);margin-bottom:.4rem;font-size:.7rem;font-weight:600;display:block}h1,h2,h3{letter-spacing:-.5px;margin-top:0;font-weight:800}h1{max-width:10ch;margin:1rem 0;font-size:clamp(2.7rem,7vw,5.2rem);line-height:.95}h2{border-bottom:1px solid var(--border);margin-bottom:1rem;padding-bottom:1rem;font-size:1.6rem}h3{margin-bottom:.75rem;font-size:1.1rem}p{margin-top:0}.wrap{z-index:1;width:min(1100px,100% - 2.5rem);margin:0 auto;position:relative}.brand,.site-nav a{letter-spacing:2px;text-transform:uppercase;font-size:.75rem;font-weight:700}.btn{background:var(--fg);color:var(--bg);border:1px solid var(--fg);letter-spacing:2px;text-transform:uppercase;justify-content:center;align-items:center;gap:.5rem;padding:.85rem 1.25rem;font-size:.78rem;font-weight:700;text-decoration:none;transition:all .2s;display:inline-flex}.btn:hover,.btn-ghost{background:var(--bg);color:var(--fg)}.btn-ghost:hover{background:var(--fg);color:var(--bg)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-sm{padding:.5rem .75rem;font-size:.7rem}.badge{border:1px solid var(--fg);letter-spacing:2px;text-transform:uppercase;padding:.2rem .5rem;font-size:.65rem;font-weight:600;display:inline-block}.card{border:1px solid var(--border);background:linear-gradient(#ffffffd9,#f9f9f9fa);padding:2rem;transition:border-color .3s,transform .3s}.card:hover{border-color:var(--fg);transform:translateY(-3px)}.muted{color:var(--muted)}.mono{font-family:var(--font-mono)}.app-shell{z-index:1;grid-template-columns:240px 1fr;min-height:100vh;display:grid;position:relative}.sidebar{border-right:1px solid var(--border);background:linear-gradient(#ffffffe6,#f9f9f9e6);flex-direction:column;gap:1.5rem;height:100vh;padding:1.5rem 1rem;display:flex;position:sticky;top:0}.sidebar-brand{letter-spacing:2px;text-transform:uppercase;border-bottom:1px solid var(--border);padding:.5rem .75rem 1rem;font-size:.8rem;font-weight:800}.sidebar-nav{flex-direction:column;flex:1;gap:.25rem;display:flex}.sidebar-nav a{letter-spacing:2px;text-transform:uppercase;color:var(--muted);border:1px solid #0000;align-items:center;gap:.6rem;padding:.65rem .75rem;font-size:.72rem;font-weight:700;transition:all .15s;display:flex}.sidebar-nav a:hover{color:var(--fg);background:var(--hover)}.sidebar-nav a.active{color:var(--fg);border-color:var(--border);background:var(--accent-soft)}.sidebar-footer{border-top:1px solid var(--border);flex-direction:column;gap:.5rem;padding-top:1rem;font-size:.75rem;display:flex}.sidebar-user{color:var(--muted);word-break:break-all}.main{padding:2.5rem 2rem;overflow-x:auto}.login-shell{z-index:1;place-items:center;min-height:100vh;padding:2rem;display:grid;position:relative}.login-card{border:1px solid var(--border);background:linear-gradient(#fffffff2,#f9f9f9fa);flex-direction:column;gap:1.25rem;width:min(420px,100%);padding:2.5rem;display:flex}.login-card h1{max-width:none;margin:0;font-size:2rem}.field{flex-direction:column;display:flex}.error{color:#b00020;background:#b000200d;border:1px solid #b00020;padding:.5rem .75rem;font-size:.8rem}.calendar-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.5rem;display:flex}.calendar-title{letter-spacing:-.5px;font-size:1.4rem;font-weight:800}.calendar-grid{border-top:1px solid var(--border);border-left:1px solid var(--border);grid-template-columns:repeat(7,1fr);display:grid}.calendar-dow{letter-spacing:2px;text-transform:uppercase;color:var(--muted);background:var(--card);border-right:1px solid var(--border);border-bottom:1px solid var(--border);padding:.5rem .75rem;font-size:.65rem;font-weight:700}.calendar-cell{border-right:1px solid var(--border);border-bottom:1px solid var(--border);background:var(--bg);cursor:pointer;flex-direction:column;gap:.35rem;min-height:110px;padding:.5rem;transition:background .15s;display:flex;position:relative}.calendar-cell:hover{background:var(--hover)}.calendar-cell.other-month{color:var(--muted);background:#00000004}.calendar-cell.today .calendar-day{background:var(--fg);color:var(--bg)}.calendar-day{letter-spacing:1px;align-self:flex-start;padding:.15rem .45rem;font-size:.75rem;font-weight:700}.calendar-city{letter-spacing:1.5px;text-transform:uppercase;border:1px solid var(--accent);background:var(--accent-soft);color:var(--accent);word-break:break-word;padding:.3rem .45rem;font-size:.7rem;font-weight:700}.calendar-event{border-left:2px solid var(--fg);color:var(--fg);white-space:nowrap;text-overflow:ellipsis;background:#0000000a;padding:.2rem .4rem;font-size:.7rem;font-weight:600;overflow:hidden}.calendar-flight{letter-spacing:.5px;color:#fff;white-space:nowrap;text-overflow:ellipsis;background:#111;padding:.2rem .4rem;font-size:.65rem;font-weight:700;overflow:hidden}.calendar-more{color:var(--muted);letter-spacing:.5px;font-size:.65rem;font-weight:600}.modal-backdrop{z-index:50;background:#0006;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.modal{background:var(--bg);border:1px solid var(--fg);flex-direction:column;gap:1rem;width:min(420px,100%);max-height:calc(100dvh - 2rem);padding:1.75rem;display:flex;overflow-y:auto}.modal-wide{width:min(560px,100%)}.modal-actions{flex-wrap:wrap;justify-content:flex-end;gap:.5rem;display:flex}.settings-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1rem;display:grid}.list{flex-direction:column;gap:.5rem;display:flex}.list-row{border:1px solid var(--border);justify-content:space-between;align-items:center;gap:.5rem;padding:.5rem .75rem;font-size:.85rem;display:flex}.row-inline{align-items:center;gap:.5rem;display:flex}.dots{color:currentColor;align-items:center;gap:.28em;line-height:1;display:inline-flex}.dots>span{background:currentColor;width:.45em;height:.45em;animation:1.1s ease-in-out infinite both dot-bounce;display:inline-block}.dots>span:first-child{animation-delay:-.32s}.dots>span:nth-child(2){animation-delay:-.16s}.dots-sm{font-size:.85em}.dots-md{font-size:1.1em}.dots-lg{font-size:1.6em}@keyframes dot-bounce{0%,80%,to{opacity:.4;transform:scale(.25)}40%{opacity:1;transform:scale(1)}}@media (prefers-reduced-motion:reduce){.dots>span{opacity:.6;animation:none;transform:none}}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}.loader-block{color:var(--muted);letter-spacing:2px;text-transform:uppercase;flex-direction:column;align-items:center;gap:.5rem;font-size:.7rem;display:inline-flex}.btn[aria-busy=true]{pointer-events:none;opacity:.85}@media (max-width:800px){.app-shell{grid-template-columns:1fr;padding-bottom:5rem}.sidebar{z-index:40;border-right:none;border-top:1px solid var(--border);background:var(--bg);flex-direction:column;align-items:stretch;gap:0;height:auto;padding:0;position:fixed;inset:auto 0 0}.sidebar-brand{display:none}.sidebar-nav{border-bottom:1px solid var(--border);flex-direction:row;flex:none;justify-content:space-around;padding:0}.sidebar-nav a{letter-spacing:1.5px;border:none;border-top:2px solid #0000;flex:1;justify-content:center;padding:.85rem .4rem;font-size:.65rem}.sidebar-nav a.active{border-top:2px solid var(--fg);background:0 0}.sidebar-footer{border-top:none;flex-flow:wrap;justify-content:space-between;align-items:center;gap:.5rem;padding:.5rem .75rem}.sidebar-user{flex:50%;font-size:.65rem}.main{padding:1.25rem .85rem}.calendar-cell{gap:.2rem;min-height:64px;padding:.35rem .3rem}.calendar-day{padding:.1rem .35rem;font-size:.7rem}.calendar-city{letter-spacing:.5px;padding:.15rem .3rem;font-size:.55rem}.calendar-event,.calendar-flight{padding:.1rem .25rem;font-size:.55rem}.calendar-more{font-size:.55rem}.calendar-dow{padding:.4rem .3rem;font-size:.55rem}.modal-backdrop{align-items:flex-end;padding:0}.modal,.modal-wide{border:none;border-top:2px solid var(--fg);width:100%;max-height:85dvh;padding:1.25rem}.btn{min-height:44px}input,textarea,select{font-size:16px}}@supports (-webkit-touch-callout:none){.sidebar{padding-bottom:env(safe-area-inset-bottom)}}
