:root{--paper:#eff0f6;--card:#fff;--ink:#161b3a;--ink-soft:#5a6082;--line:#dcdfec;--blue:#3b4cf2;--blue-deep:#2a37c4;--blue-wash:#e4e7fe;--amber:#ffb547;--amber-wash:#fff0d6;--amber-ink:#8a5300;--mint:#1f9d6b;--mint-wash:#d9f3e8;--rose:#d6455d;--rose-wash:#fbe3e7;--grey-wash:#e7e8f0;--font:"Schibsted Grotesk", system-ui, -apple-system, "Segoe UI", sans-serif;--r-sm:10px;--r-md:16px;--r-lg:24px;--safe-b:env(safe-area-inset-bottom,0px)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{min-height:100%}body{font-family:var(--font);color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased;margin:0;font-size:1rem;line-height:1.5;overflow-x:hidden}h1,h2,h3{letter-spacing:-.025em;margin:0 0 .4em;font-weight:800;line-height:1.05}h1{font-size:clamp(2.2rem,9vw,3.6rem)}h2{font-size:1.5rem}h3{letter-spacing:-.01em;font-size:1.1rem}p{color:var(--ink-soft);margin:0 0 .9em}a{color:var(--blue)}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:3px solid var(--blue);outline-offset:2px}.muted{color:var(--ink-soft)}.small{font-size:.875rem}.hidden-field{width:1px;height:1px;position:absolute;left:-9999px;overflow:hidden}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.btn{background:var(--blue);color:#fff;cursor:pointer;border:0;border-radius:999px;justify-content:center;align-items:center;gap:8px;min-height:48px;padding:0 20px;font-size:1rem;font-weight:700;text-decoration:none;transition:background .15s,transform .1s;display:inline-flex}.btn:hover{background:var(--blue-deep)}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-soft{background:var(--blue-wash);color:var(--blue-deep)}.btn-soft:hover{background:#d3d8fd}.btn-line{color:var(--ink);box-shadow:inset 0 0 0 1.5px var(--line);background:0 0}.btn-line:hover{background:var(--card)}.btn-amber{background:var(--amber);color:var(--ink)}.btn-amber:hover{background:#f5a523}.btn-danger{background:var(--rose-wash);color:var(--rose)}.btn-danger:hover{background:#f6cdd4}.btn-sm{min-height:38px;padding:0 14px;font-size:.9rem}.btn-block{width:100%}.btn-row{flex-wrap:wrap;gap:10px;display:flex}.btn-row>.btn{flex:140px}.field{margin-bottom:16px;display:block}.field>span.lbl{margin-bottom:6px;font-size:.9rem;font-weight:600;display:block}.field small{color:var(--ink-soft);margin-top:5px;font-size:.82rem;display:block}.field input:not([type=checkbox]),.field select,.field textarea{border:1.5px solid var(--line);border-radius:var(--r-sm);background:var(--card);width:100%;min-height:48px;padding:10px 14px;font-size:1rem;transition:border-color .15s}.field textarea{resize:vertical;min-height:96px}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--blue);outline:none}.field-row{grid-template-columns:1fr 1fr;gap:12px;display:grid}.field-row>.field{min-width:0}.toggle{border:1.5px solid var(--line);border-radius:var(--r-sm);background:var(--card);cursor:pointer;align-items:center;gap:12px;min-height:48px;margin-bottom:16px;padding:8px 14px;display:flex}.toggle input{width:22px;height:22px;accent-color:var(--blue);flex:none}.toggle span{flex:1}.toggle b{font-weight:700}.stepper{border:1.5px solid var(--line);background:var(--card);border-radius:999px;justify-content:space-between;align-items:center;min-height:48px;padding:4px;display:flex}.stepper button{background:var(--blue-wash);width:40px;height:40px;color:var(--blue-deep);cursor:pointer;border:0;border-radius:50%;font-size:1.3rem;font-weight:700}.stepper button:disabled{opacity:.35;cursor:not-allowed}.stepper output{font-weight:700}.msg{border-radius:var(--r-sm);margin:12px 0;padding:12px 14px;font-size:.95rem}.msg.err{background:var(--rose-wash);color:#9b2236}.msg.warn{background:var(--amber-wash);color:var(--amber-ink)}.msg.ok{background:var(--mint-wash);color:#14704b}.pill{white-space:nowrap;border-radius:999px;padding:3px 11px;font-size:.8rem;font-weight:700;display:inline-block}.pill.amber{background:var(--amber-wash);color:var(--amber-ink)}.pill.sun{background:var(--blue-wash);color:var(--blue-deep)}.pill.mint{background:var(--mint-wash);color:#14704b}.pill.rose{background:var(--rose-wash);color:#9b2236}.pill.grey{background:var(--grey-wash);color:var(--ink-soft)}.card{border-radius:var(--r-md);background:var(--card);padding:18px}.card+.card{margin-top:14px}.list{gap:10px;display:grid}.item{border-radius:var(--r-md);background:var(--card);color:inherit;padding:14px 16px;text-decoration:none;display:block}a.item:hover{box-shadow:0 0 0 2px var(--blue-wash)}.item-top{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.item b{font-weight:700}.item .sub{color:var(--ink-soft);font-size:.9rem}.empty{text-align:center;color:var(--ink-soft);padding:36px 16px}.empty b{color:var(--ink);margin-bottom:4px;font-size:1.1rem;display:block}.kv{border-bottom:1px solid var(--line);justify-content:space-between;gap:12px;padding:7px 0;display:flex}.kv:last-child{border-bottom:0}.kv dt,.kv span:first-child{color:var(--ink-soft)}.kv.total{font-size:1.1rem;font-weight:800}.kv.total span:first-child{color:var(--ink)}.overlay{z-index:200;background:#161b3a8c;justify-content:center;align-items:flex-end;animation:.15s ease-out fade;display:flex;position:fixed;inset:0}.sheet{width:100%;max-width:560px;max-height:92dvh;padding:10px 20px calc(24px + var(--safe-b));border-radius:var(--r-lg) var(--r-lg) 0 0;background:var(--paper);animation:.22s ease-out rise;overflow-y:auto}.sheet-grab{background:var(--line);border-radius:99px;width:44px;height:5px;margin:4px auto 14px}.sheet-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.sheet-head h2{margin:0}.icon-btn{background:var(--card);width:44px;height:44px;color:var(--ink);cursor:pointer;border:0;border-radius:50%;place-items:center;display:inline-grid}@media (width>=720px){.overlay{align-items:center}.sheet{border-radius:var(--r-lg)}}@keyframes rise{0%{opacity:0;transform:translateY(40px)}}@keyframes fade{0%{opacity:0}}.pub{max-width:720px;margin:0 auto;padding:0 20px 150px}.pub-head{justify-content:space-between;align-items:center;padding:18px 0 6px;display:flex}.pub-head b{letter-spacing:-.02em;font-weight:800}.pub-head a{color:var(--ink-soft);font-size:.88rem}.intro{padding:22px 0 8px}.intro .tagline{max-width:34ch;color:var(--ink);font-size:1.15rem}.facts{flex-wrap:wrap;gap:8px;margin:18px 0 0;padding:0;list-style:none;display:flex}.facts li{background:var(--card);border-radius:999px;padding:7px 14px;font-size:.9rem;font-weight:600}.section{padding:34px 0 0}.planner-hint{margin-bottom:14px}.legend{color:var(--ink-soft);flex-wrap:wrap;gap:8px 18px;margin:0 0 18px;font-size:.85rem;display:flex}.legend span{align-items:center;gap:7px;display:inline-flex}.legend i{background:var(--card);width:16px;height:16px;box-shadow:inset 0 0 0 1.5px var(--line);border-radius:5px}.legend i.sel{background:var(--blue);box-shadow:none}.legend i.busy{box-shadow:none;background:repeating-linear-gradient(135deg,#cfd2e3 0 2px,#f4f5fa 2px 5px)}.legend i.opt{background:var(--amber-wash);box-shadow:inset 0 0 0 1.5px var(--amber)}.cal-month{margin-bottom:26px}.cal-month h3{text-transform:capitalize;margin-bottom:8px}.cal-head,.cal-grid{grid-template-columns:repeat(7,1fr);gap:4px;display:grid}.cal-head span{text-align:center;color:var(--ink-soft);padding-bottom:4px;font-size:.75rem;font-weight:600}.day{aspect-ratio:1;background:var(--card);cursor:pointer;border:0;border-radius:12px;min-height:44px;padding:0;font-size:.98rem;font-weight:600;transition:background .12s;position:relative}.day:hover{box-shadow:inset 0 0 0 2px var(--blue-wash)}.day.empty-cell{visibility:hidden}.day.past{opacity:.3;cursor:default;background:0 0}.day.closed{color:#a4a9c4;background:0 0;font-weight:500}.day.busy{color:#878daa;cursor:not-allowed;background:repeating-linear-gradient(135deg,#d3d6e6 0 2px,#f4f5fa 2px 6px)}.day.option{background:var(--amber-wash);box-shadow:inset 0 0 0 1.5px var(--amber);color:var(--amber-ink);cursor:not-allowed}.day.mid{background:var(--blue-wash);color:var(--blue-deep);border-radius:6px}.day.start,.day.end{background:var(--blue);color:#fff;box-shadow:none}.day.today:after{content:"";background:currentColor;border-radius:50%;width:4px;height:4px;margin-left:-2px;position:absolute;bottom:6px;left:50%}.steps{counter-reset:step;gap:12px;margin:0;padding:0;list-style:none;display:grid}.steps li{border-radius:var(--r-md);background:var(--card);counter-increment:step;padding:16px 16px 16px 58px;position:relative}.steps li:before{content:counter(step);background:var(--blue-wash);width:30px;height:30px;color:var(--blue-deep);border-radius:50%;place-items:center;font-weight:800;display:grid;position:absolute;top:14px;left:16px}.steps b{display:block}.steps span{color:var(--ink-soft);font-size:.92rem}.quote-bar{left:12px;right:12px;bottom:calc(12px + var(--safe-b));z-index:100;background:var(--ink);color:#fff;border-radius:999px;align-items:center;gap:14px;max-width:696px;margin:0 auto;padding:12px 12px 12px 20px;animation:.2s ease-out rise;display:flex;position:fixed;box-shadow:0 10px 30px #161b3a59}.quote-bar .qb-main{flex:1;min-width:0;line-height:1.2}.quote-bar strong{letter-spacing:-.01em;font-size:1.15rem;display:block}.quote-bar small{color:#b8bdd8;white-space:nowrap;text-overflow:ellipsis;display:block;overflow:hidden}.quote-bar .btn{background:var(--amber);color:var(--ink);flex:none}.quote-bar.error strong{color:#ffb3bf;font-size:.95rem}.done{text-align:center;padding:8px 0 4px}.done .big{background:var(--mint-wash);width:72px;height:72px;color:var(--mint);border-radius:50%;place-items:center;margin:8px auto 16px;display:grid}.ref{background:var(--card);letter-spacing:.08em;border-radius:999px;padding:4px 14px;font-weight:800;display:inline-block}.admin{max-width:720px;padding:0 16px calc(104px + var(--safe-b));margin:0 auto}.topbar{justify-content:space-between;align-items:center;gap:12px;padding:20px 0 14px;display:flex}.topbar h1{margin:0;font-size:1.9rem}.topbar .sub{margin:2px 0 0;font-size:.9rem}.back{color:var(--ink-soft);align-items:center;gap:4px;margin-bottom:4px;font-size:.9rem;text-decoration:none;display:inline-flex}.tabbar{z-index:90;padding-bottom:var(--safe-b);border-top:1px solid var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fffffff0;justify-content:center;display:flex;position:fixed;bottom:0;left:0;right:0}.tabbar-inner{grid-template-columns:repeat(4,1fr);width:100%;max-width:720px;display:grid}.tab{min-height:62px;color:var(--ink-soft);flex-direction:column;align-items:center;gap:2px;padding:9px 0 8px;font-size:.74rem;font-weight:600;text-decoration:none;display:flex}.tab.active{color:var(--blue)}.tab .badge{background:var(--rose);color:#fff;text-align:center;border-radius:99px;min-width:18px;margin:-4px 0 0 18px;padding:0 5px;font-size:.7rem;line-height:18px;position:absolute}.tab-ico{position:relative}.strip{border-radius:var(--r-md);background:var(--ink);color:#fff;grid-template-columns:repeat(3,1fr);margin-bottom:22px;display:grid}.strip>div{padding:14px 16px}.strip>div+div{border-left:1px solid #ffffff24}.strip b{letter-spacing:-.02em;font-size:1.35rem;display:block}.strip small{color:#b8bdd8;font-size:.78rem}.block-title{justify-content:space-between;align-items:baseline;margin:26px 0 10px;display:flex}.block-title h2{margin:0;font-size:1.2rem}.block-title span{color:var(--ink-soft);font-size:.88rem}.chips{scrollbar-width:none;gap:8px;margin:0 -16px 14px;padding:2px 16px;display:flex;overflow-x:auto}.chips::-webkit-scrollbar{display:none}.chip{background:var(--card);cursor:pointer;border:0;border-radius:999px;flex:none;min-height:40px;padding:0 16px;font-size:.92rem;font-weight:600}.chip.on{background:var(--ink);color:#fff}.move{align-items:center;gap:14px;display:flex}.move .when{text-align:center;flex:none;width:54px;line-height:1.1}.move .when b{letter-spacing:-.03em;font-size:1.5rem;display:block}.move .when small{color:var(--ink-soft);font-size:.78rem}.move .what{flex:1;min-width:0}.dir{border-radius:6px;margin-right:6px;padding:1px 8px;font-size:.75rem;font-weight:700;display:inline-block}.dir.in{background:var(--mint-wash);color:#14704b}.dir.out{background:var(--grey-wash);color:var(--ink-soft)}.acal-nav{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.acal-nav h2{text-transform:capitalize;margin:0}.acal .day{aspect-ratio:auto;text-align:center;border-radius:8px;flex-direction:column;justify-content:flex-start;align-items:stretch;min-height:62px;padding:5px 3px 3px;font-size:.85rem;display:flex;overflow:hidden}.acal .day.is-today{box-shadow:inset 0 0 0 2px var(--ink)}.acal .bar{text-overflow:ellipsis;white-space:nowrap;border-radius:4px;margin-top:3px;padding:1px 3px;font-size:.65rem;font-weight:700;line-height:1.35;display:block;overflow:hidden}.bar.confirmed{background:var(--blue);color:#fff}.bar.option{background:var(--amber);color:var(--ink)}.bar.request{background:var(--card);color:var(--ink);box-shadow:inset 0 0 0 1.5px var(--ink-soft)}.bar.block{color:var(--ink-soft);background:repeating-linear-gradient(135deg,#bfc3d9 0 2px,#e4e6f1 2px 5px)}.toast{left:50%;bottom:calc(86px + var(--safe-b));z-index:300;background:var(--ink);color:#fff;border-radius:999px;max-width:calc(100% - 32px);padding:12px 20px;font-weight:600;animation:.2s ease-out rise;position:fixed;transform:translate(-50%)}.login{background:var(--ink);place-items:center;min-height:100dvh;padding:20px;display:grid}.login .card{border-radius:var(--r-lg);width:100%;max-width:380px;padding:28px}.doc-bar{background:var(--card);border-bottom:1px solid var(--line);gap:10px;padding:14px 16px;display:flex}.doc{background:#fff;max-width:780px;margin:24px auto 80px;padding:48px 56px;font-size:.95rem;line-height:1.6}.doc h1{font-size:1.8rem}.doc p{color:var(--ink)}.doc table{border-collapse:collapse;width:100%;margin:16px 0}.doc td,.doc th{border-bottom:1px solid var(--line);text-align:left;padding:8px 4px}.doc td:last-child,.doc th:last-child{text-align:right}.doc .sum td{border-top:2px solid var(--ink);border-bottom:0;font-weight:800}.doc .sig{gap:40px;margin-top:56px;display:flex}.doc .sig div{border-top:1px solid var(--ink);flex:1;padding-top:8px;font-size:.85rem}@media (width<=640px){.doc{margin:0;padding:28px 20px 60px}}@media print{.no-print{display:none!important}body{background:#fff}.doc{max-width:none;margin:0;padding:0}}.loading{text-align:center;color:var(--ink-soft);padding:48px 16px}
