.portal{max-width:860px}.portal-signup{margin-top:1.5rem;padding-top:1.25rem;border-top:1px solid var(--line)}.portal-signup-title{font-weight:700;margin:0 0 .5rem}.portal-signup .actions{margin-top:0}.portal [hidden]{display:none!important}.portal-nav{display:flex;gap:.35rem;flex-wrap:wrap;margin:1rem 0 .25rem}.portal-tab{text-decoration:none;font-weight:700;font-size:.95rem;color:var(--ink-soft);padding:.5rem .95rem;border-radius:999px;border:1px solid transparent}.portal-tab:hover{background:var(--bg-soft);color:var(--ink)}.portal-tab.active{background:var(--navy-800);color:#fff}.portal-tab:focus-visible{outline:3px solid var(--teal-500);outline-offset:2px}.portal-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.75rem;margin:1rem 0 0}.stat{padding:.9rem 1rem;border:1px solid var(--line);border-radius:12px;background:#fff}.stat b{display:block;font-size:1.5rem;font-variant-numeric:tabular-nums}.stat span{color:var(--ink-soft);font-size:.9rem}.row-list{list-style:none;padding:0;margin:1rem 0 0;display:grid;gap:.5rem}.row{display:grid;grid-template-columns:auto 1fr auto;gap:.9rem;align-items:center;padding:.85rem 1rem;border:1px solid var(--line);border-radius:12px;background:#fff}.row.paused{opacity:.55}.avatar{width:2.4rem;height:2.4rem;border-radius:50%;background:var(--teal-500);color:var(--navy-950);display:grid;place-items:center;font-weight:800;font-size:.85rem}.row-title{font-weight:700}.row-sub{color:var(--ink-soft);font-size:.9rem}.chip{display:inline-block;padding:.1rem .55rem;border-radius:999px;font-size:.75rem;font-weight:700;margin-left:.4rem;vertical-align:middle}.chip.manager{background:#e3ecff;color:#1c3f9a}.chip.paused{background:#ffe9d6;color:#8a4b00}.chip.owner,.chip.good{background:#dff7f3;color:var(--teal-ink)}.chip.bad{background:#fde3e1;color:#8a1d16}.chip.warn{background:#ffe9d6;color:#8a4b00}.menu{position:relative}.menu-btn{width:2.2rem;height:2.2rem;border-radius:999px;border:1px solid var(--line);background:#fff;cursor:pointer;font-size:1.1rem}.menu-list{position:absolute;right:0;top:2.5rem;z-index:5;min-width:15rem;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow-pop);padding:.35rem;display:grid}.menu-list button{text-align:left;background:none;border:0;padding:.6rem .75rem;border-radius:8px;font:inherit;cursor:pointer}.menu-list button:hover{background:var(--bg-soft)}.menu-list button.danger{color:#8a1d16}.code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-weight:800;letter-spacing:.08em;font-size:1.1rem}.code-big{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-weight:800;letter-spacing:.12em;font-size:2rem;margin:.5rem 0}.btn-sm{padding:.45rem .85rem;font-size:.9rem}.btn-danger{background:#fde3e1;color:#8a1d16;border-color:transparent}.table{width:100%;border-collapse:collapse;margin-top:1rem;font-variant-numeric:tabular-nums}.table th,.table td{text-align:left;padding:.6rem .5rem;border-bottom:1px solid var(--line)}.table th{font-size:.85rem;color:var(--ink-soft)}.table-wrap{overflow-x:auto}.days{display:grid;gap:.5rem;margin:.5rem 0 1rem}.day{display:grid;grid-template-columns:7rem auto 1fr auto 1fr;gap:.5rem;align-items:center}.day input[type=time]{font:inherit;padding:.4rem .5rem;border:1px solid var(--ink-faint);border-radius:8px}.day.closed input[type=time]{opacity:.35}.logo-preview{width:96px;height:96px;border-radius:16px;object-fit:cover;border:1px solid var(--line);background:var(--bg-soft)}.doc-view{white-space:pre-wrap;font-size:.95rem;line-height:1.55;background:#fff;border:1px solid var(--line);border-radius:12px;padding:1.25rem;margin-top:1rem}.portal-toast{position:fixed;left:50%;bottom:1.5rem;transform:translate(-50%,1rem);opacity:0;pointer-events:none;background:var(--navy-900);color:#fff;padding:.7rem 1.1rem;border-radius:999px;font-weight:600;transition:opacity .2s,transform .2s;z-index:60}.portal-toast.show{opacity:1;transform:translate(-50%)}.modal-back{position:fixed;inset:0;background:#08214773;display:grid;place-items:center;z-index:55;padding:1rem}.modal{background:#fff;border-radius:16px;padding:1.5rem;max-width:520px;width:100%;box-shadow:var(--shadow-pop)}@media(max-width:640px){.day{grid-template-columns:1fr auto}.day input[type=time]{width:100%}}
