.portal{--paper:#f7f6f2;--raised:#fffefb;--sunk:#edeae2;--ink:#1b1a17;--ink-soft:#4d4a44;--ink-faint:#7d786f;--rule:#ddd8cd;--bluing:#34456b;--bluing-bright:#4661a3;--bluing-wash:#e7ebf4;--mint:#10795a;--mint-wash:#dff2ea;--amber:#9a6508;--amber-wash:#fbeed2;--coral:#bf3f2a;--coral-wash:#fbe3dd;--violet:#61479c;--violet-wash:#ece5f8;--sky:#14688f;--sky-wash:#ddedf6;--serif:"Old Standard TT", Georgia, "Times New Roman", serif;--sans:"Source Sans 3 Variable", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--r:12px;--r-sm:8px;--pad:clamp(18px, 3vw, 30px);background:var(--paper);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;min-height:100dvh;font-size:16.5px;line-height:1.6}.portal *,.portal :before,.portal :after{box-sizing:border-box}.cat-duvet{--accent:var(--bluing);--accent-wash:var(--bluing-wash)}.cat-sheet{--accent:var(--sky);--accent-wash:var(--sky-wash)}.cat-pillow{--accent:var(--violet);--accent-wash:var(--violet-wash)}.cat-towel{--accent:var(--mint);--accent-wash:var(--mint-wash)}.cat-mat{--accent:var(--amber);--accent-wash:var(--amber-wash)}.cat-table{--accent:var(--coral);--accent-wash:var(--coral-wash)}.cat-other{--accent:var(--ink-soft);--accent-wash:var(--sunk)}.cat-equipment{--accent:var(--ink-faint);--accent-wash:var(--sunk)}.shell{grid-template-columns:244px minmax(0,1fr);min-height:100dvh;display:grid}.side{border-right:1px solid var(--rule);background:var(--raised);flex-direction:column;gap:22px;height:100dvh;padding:22px 16px;display:flex;position:sticky;top:0;overflow-y:auto}.side-brand{color:inherit;padding-inline:8px;text-decoration:none;display:block}.side-brand b{font-family:var(--serif);font-size:19px;font-weight:400;line-height:1.2;display:block}.side-brand b i{font-style:italic}.side-brand span{letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint);font-size:12px;font-weight:600}.side-org{border-radius:var(--r-sm);background:var(--bluing-wash);color:var(--bluing);margin-inline:8px;padding:10px 12px;font-size:14.5px;font-weight:600;line-height:1.3}.side-org small{letter-spacing:.1em;text-transform:uppercase;opacity:.72;font-size:12px;font-weight:500;display:block}.side nav{flex-direction:column;gap:2px;display:flex}.side-group{letter-spacing:.15em;text-transform:uppercase;color:var(--ink-faint);margin:14px 8px 6px;font-size:11px;font-weight:700}.navlink{border-radius:var(--r-sm);color:var(--ink-soft);align-items:center;gap:11px;padding:9px 12px;font-size:15.5px;font-weight:500;text-decoration:none;transition:background-color .15s,color .15s;display:flex}.navlink svg{width:19px;height:19px;color:var(--ink-faint);flex:none;transition:color .15s}.navlink:hover{background:var(--sunk);color:var(--ink)}.navlink.on{background:var(--bluing);color:#fff}.navlink.on svg{color:#fff}.navlink .soon{letter-spacing:.08em;text-transform:uppercase;color:var(--amber);background:var(--amber-wash);border-radius:999px;margin-left:auto;padding:2px 7px;font-size:10.5px;font-weight:700}.navlink.on .soon{color:var(--amber-wash);background:#00000038}.side-foot{border-top:1px solid var(--rule);flex-direction:column;gap:8px;margin-top:auto;padding-top:16px;display:flex}.side-user{color:var(--ink-faint);overflow-wrap:anywhere;padding-inline:12px;font-size:13px}.main{min-width:0;padding:clamp(22px, 4vw, 46px) var(--pad) 90px}.main-inner{flex-direction:column;gap:clamp(20px,3vw,32px);max-width:940px;margin-inline:auto;display:flex}@media (width<=860px){.shell{grid-template-columns:minmax(0,1fr)}.side{z-index:5;height:auto;padding:12px var(--pad);border-right:0;border-bottom:1px solid var(--rule);flex-direction:row;align-items:center;gap:12px;position:sticky;top:0;overflow:auto hidden}.side-brand b{white-space:nowrap;font-size:17px}.side-brand span,.side-org small,.side-user{display:none}.side-org{white-space:nowrap;margin:0;padding:7px 11px}.side nav{flex-direction:row;gap:4px}.side-group{display:none}.navlink{white-space:nowrap;padding:8px 11px}.navlink span.label,.navlink .soon{display:none}.side-foot{border:0;flex-direction:row;margin:0;padding:0}}.portal h1{font-family:var(--serif);letter-spacing:-.01em;margin:0;font-size:clamp(28px,4.2vw,40px);font-weight:400;line-height:1.12}.portal h2{letter-spacing:-.005em;margin:0;font-size:19px;font-weight:600}.portal h3{margin:0;font-size:16px;font-weight:600}.portal p{margin:0}.lede{color:var(--ink-soft);max-width:62ch;font-size:17px}.eyebrow{letter-spacing:.15em;text-transform:uppercase;color:var(--ink-faint);margin:0;font-size:11.5px;font-weight:700}.muted{color:var(--ink-faint);font-size:14.5px}.page-head{flex-direction:column;gap:8px;display:flex}.card{background:var(--raised);border:1px solid var(--rule);border-radius:var(--r);padding:var(--pad);flex-direction:column;gap:16px;display:flex}.card.tight{gap:12px;padding:16px 18px}.card-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:14px;display:flex}.card.accent{border-color:color-mix(in srgb, var(--accent,var(--bluing)) 30%, var(--rule));background:linear-gradient(180deg, color-mix(in srgb, var(--accent-wash,var(--bluing-wash)) 70%, var(--raised)), var(--raised) 74%);position:relative;overflow:hidden}.card.accent:before{content:"";background:var(--accent,var(--bluing));height:4px;position:absolute;inset:0 0 auto}.grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;display:grid}.btn{border-radius:var(--r-sm);background:var(--bluing);color:#fff;cursor:pointer;border:1px solid #0000;justify-content:center;align-items:center;gap:8px;padding:11px 18px;font-family:inherit;font-size:15.5px;font-weight:600;line-height:1.2;text-decoration:none;transition:background-color .15s,border-color .15s,color .15s;display:inline-flex}.btn:hover:not(:disabled){background:var(--bluing-bright)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.ghost{border-color:var(--rule);color:var(--ink);background:0 0}.btn.ghost:hover:not(:disabled){background:var(--sunk);border-color:var(--ink-faint)}.btn.quiet{color:var(--ink-soft);background:0 0;padding-inline:10px}.btn.quiet:hover:not(:disabled){background:var(--sunk);color:var(--ink)}.btn.danger{border-color:color-mix(in srgb, var(--coral) 35%, var(--rule));color:var(--coral);background:0 0}.btn.danger:hover:not(:disabled){background:var(--coral-wash)}.btn.big{padding:14px 24px;font-size:17px}.btn.sm{padding:7px 13px;font-size:14px}.btn-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.portal :focus-visible{outline:2.5px solid var(--bluing-bright);outline-offset:2px;border-radius:4px}.field{flex-direction:column;gap:6px;min-width:0;display:flex}.field>label{color:var(--ink-soft);font-size:14px;font-weight:600}.field>label .opt{color:var(--ink-faint);font-weight:500}.portal input[type=text],.portal input[type=email],.portal input[type=password],.portal input[type=date],.portal input[type=number],.portal select,.portal textarea{color:var(--ink);background:var(--raised);border:1px solid var(--rule);border-radius:var(--r-sm);width:100%;padding:10px 12px;font-family:inherit;font-size:16px;transition:border-color .15s,box-shadow .15s}.portal textarea{resize:vertical;min-height:92px;line-height:1.5}.portal input:focus,.portal select:focus,.portal textarea:focus{border-color:var(--bluing-bright);box-shadow:0 0 0 3px var(--bluing-wash);outline:none}.form-grid{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));align-items:end;gap:14px;display:grid}.stepper{background:var(--paper);border:1px solid var(--rule);border-radius:999px;align-items:center;gap:4px;padding:3px;display:flex}.stepper button{width:38px;height:38px;color:var(--accent,var(--bluing));cursor:pointer;background:0 0;border:0;border-radius:50%;flex:none;font-family:inherit;font-size:22px;line-height:1;transition:background-color .13s}.stepper button:hover:not(:disabled){background:var(--accent-wash,var(--bluing-wash))}.stepper button:disabled{color:var(--rule);cursor:not-allowed}.portal .stepper input{text-align:center;font-variant-numeric:tabular-nums;-moz-appearance:textfield;background:0 0;border:0;flex:none;width:62px;padding:4px;font-size:17px;font-weight:600}.stepper input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.stepper input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.portal .stepper input:focus{box-shadow:none}.rows{flex-direction:column;display:flex}.row{border-top:1px solid var(--rule);flex-wrap:wrap;align-items:center;gap:14px;padding:12px 4px 12px 0;display:flex}.row:first-child{border-top:0}.row-dot{background:var(--accent,var(--ink-soft));border-radius:999px;flex:none;width:10px;height:34px}.row-name{flex-direction:column;flex:190px;gap:1px;min-width:0;display:flex}.row-name b{font-size:16px;font-weight:600}.row-name small{color:var(--ink-faint);font-size:13.5px}.row-tail{align-items:center;gap:10px;margin-left:auto;display:flex}.row-block{flex-direction:column;align-items:stretch;gap:12px}.row-line{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.day-quantities{border-radius:var(--r-sm);background:var(--accent-wash,var(--sunk));flex-wrap:wrap;gap:10px;padding:12px 14px;display:flex}.day-quantity{flex-direction:column;align-items:center;gap:5px;display:flex}.day-quantity .eyebrow{color:var(--accent,var(--ink-soft))}.day-quantity .stepper{background:var(--raised)}.qty{font-variant-numeric:tabular-nums;color:var(--accent,var(--ink));background:var(--accent-wash,var(--sunk));white-space:nowrap;border-radius:999px;padding:4px 12px;font-size:16px;font-weight:600}.pill{letter-spacing:.01em;white-space:nowrap;background:var(--sunk);color:var(--ink-soft);border-radius:999px;align-items:center;gap:6px;padding:4px 11px;font-size:13px;font-weight:600;display:inline-flex}.pill:before{content:"";background:currentColor;border-radius:50%;width:7px;height:7px}.pill.pending{background:var(--amber-wash);color:var(--amber)}.pill.confirmed{background:var(--mint-wash);color:var(--mint)}.pill.delivered{background:var(--sky-wash);color:var(--sky)}.pill.cancelled,.pill.skipped{background:var(--coral-wash);color:var(--coral)}.pill.plain:before{display:none}.weekdays{flex-wrap:wrap;gap:8px;display:flex}.weekday{border:1px solid var(--rule);background:var(--raised);color:var(--ink-soft);cursor:pointer;border-radius:999px;padding:9px 15px;font-family:inherit;font-size:15px;font-weight:600;transition:all .15s}.weekday:hover:not(:disabled){border-color:var(--bluing);color:var(--bluing)}.weekday.on{background:var(--mint);border-color:var(--mint);color:#fff}.weekday:disabled{cursor:default}.day{border:1px solid var(--rule);border-radius:var(--r);background:var(--raised);flex-wrap:wrap;align-items:center;gap:14px;padding:14px 16px;display:flex}.day.is-skipped{background:var(--paper);border-style:dashed}.day.is-skipped .day-when b{color:var(--ink-faint);text-decoration:line-through}.day-mark{text-align:center;background:var(--bluing-wash);width:46px;height:46px;color:var(--bluing);border-radius:10px;flex:none;place-content:center;font-weight:700;line-height:1.05;display:grid}.day-mark span{font-size:17px;display:block}.day-mark small{letter-spacing:.08em;text-transform:uppercase;font-size:10px;font-weight:600}.day.is-skipped .day-mark{background:var(--coral-wash);color:var(--coral)}.day-when{flex-direction:column;flex:180px;min-width:0;display:flex}.day-when b{font-size:16px;font-weight:600}.day-actions{align-items:center;gap:8px;margin-left:auto;display:flex}.empty{text-align:center;border:1px dashed var(--rule);border-radius:var(--r);background:var(--raised);flex-direction:column;align-items:center;gap:10px;padding:clamp(28px,6vw,52px) 20px;display:flex}.empty-art{gap:6px;margin-bottom:4px;display:flex}.empty-art i{border-radius:999px;width:13px;height:34px;display:block}.empty h3{font-size:18px}.empty p{color:var(--ink-faint);max-width:44ch}.banner{border-radius:var(--r-sm);border:1px solid #0000;align-items:flex-start;gap:12px;padding:13px 16px;font-size:15px;display:flex}.banner.info{background:var(--bluing-wash);border-color:color-mix(in srgb, var(--bluing) 22%, transparent);color:var(--bluing)}.banner.good{background:var(--mint-wash);border-color:color-mix(in srgb, var(--mint) 22%, transparent);color:var(--mint)}.banner.warn{background:var(--amber-wash);border-color:color-mix(in srgb, var(--amber) 25%, transparent);color:var(--amber)}.banner.bad{background:var(--coral-wash);border-color:color-mix(in srgb, var(--coral) 25%, transparent);color:var(--coral)}.banner b{font-weight:700}.sticky-bar{z-index:4;border-radius:var(--r);background:var(--ink);color:var(--paper);flex-wrap:wrap;align-items:center;gap:16px;padding:14px 18px;display:flex;position:sticky;bottom:14px;box-shadow:0 6px 22px #1b1a1738}.sticky-bar .count{color:color-mix(in srgb, var(--paper) 78%, transparent);font-size:15px}.sticky-bar .count b{color:var(--paper);font-variant-numeric:tabular-nums;font-size:17px}.sticky-bar .btn{background:var(--mint);margin-left:auto}.sticky-bar .btn:hover:not(:disabled){background:color-mix(in srgb, var(--mint) 84%, #fff)}.centre{min-height:100dvh;padding:28px var(--pad);background:radial-gradient(circle at 12% 8%, var(--bluing-wash), transparent 42%), radial-gradient(circle at 88% 92%, var(--mint-wash), transparent 46%), var(--paper);place-items:center;display:grid}.centre-card{background:var(--raised);border:1px solid var(--rule);border-radius:16px;flex-direction:column;gap:18px;width:100%;max-width:430px;padding:clamp(26px,5vw,38px);display:flex}.centre-card form{flex-direction:column;gap:15px;display:flex}.centre-brand{color:inherit;flex-direction:column;gap:2px;text-decoration:none;display:flex}.centre-brand b{font-family:var(--serif);font-size:22px;font-weight:400}.centre-brand b i{font-style:italic}.centre-foot{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;font-size:14px;display:flex}.centre-foot a{color:var(--bluing);font-weight:600}.langbtn{color:var(--ink-soft);border:1px solid var(--rule);cursor:pointer;background:0 0;border-radius:999px;padding:5px 13px;font-family:inherit;font-size:13.5px;font-weight:600}.langbtn:hover{border-color:var(--bluing);color:var(--bluing)}.icon-lg{background:var(--accent-wash,var(--sunk));width:54px;height:54px;color:var(--accent,var(--ink));border-radius:14px;place-items:center;display:grid}.icon-lg svg{width:28px;height:28px}.spinner{border:3px solid var(--rule);border-top-color:var(--bluing);border-radius:50%;width:26px;height:26px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.sr{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.table-scroll{overflow-x:auto}@media (prefers-reduced-motion:reduce){.portal *,.portal :before,.portal :after{transition-duration:.01ms!important;animation-duration:.01ms!important}}
