:root{--bg:#fafafa;--surface:#ffffff;--ink:#151211;--ink-2:#40444c;--ink-3:#8a8e95;--line:#ececec;--line-2:#d9d9d9;--primary:#ec603d;--primary-soft:rgba(236,96,61,0.08);--primary-dark:#bb2f11;--good:#2e7d32;--good-bg:rgba(46,125,50,0.08);--warn:#c62828;--warn-bg:rgba(198,40,40,0.07);--shadow:0 1px 3px rgba(20,18,17,0.04),0 4px 12px rgba(20,18,17,0.04);--radius:14px}*{box-sizing:border-box}body,html{margin:0;padding:0;background:var(--bg);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit}.top{display:flex;align-items:baseline;gap:1.5rem;padding:1rem 2rem;background:var(--surface);border-bottom:1px solid var(--line)}.brand{font-size:1.15rem;font-weight:700;text-decoration:none}.brand span{color:var(--primary)}.top nav{display:flex;gap:1rem;font-size:.95rem}.top nav a{color:var(--ink-2);text-decoration:none}.top nav a:hover{color:var(--primary-dark)}main{max-width:68rem;margin:0 auto;padding:1.5rem 2rem 3rem}h1{font-size:1.5rem;margin:.8rem 0 .2rem}h2{font-size:1.05rem;margin:1.8rem 0 .6rem;color:var(--ink-2)}.sub{color:var(--ink-3);font-size:.92rem;margin:0 0 1rem}.cards{display:flex;gap:1rem;flex-wrap:wrap;margin:1rem 0}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:.9rem 1.2rem;min-width:11rem}.card .big{font-size:1.6rem;font-weight:700}.card .unit{font-size:.95rem;font-weight:400;color:var(--ink-3)}.card .label{font-size:.82rem;color:var(--ink-3);margin-top:.15rem}table{width:100%;border-collapse:collapse;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);font-size:.92rem}td,th{text-align:left;padding:.55rem .9rem;border-bottom:1px solid var(--line)}th{background:var(--bg);color:var(--ink-2);font-weight:600;font-size:.82rem}tr:last-child td{border-bottom:none}td.num,th.num{text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.dim{color:var(--ink-3);font-style:italic}.fyrow td{background:var(--primary-soft);font-weight:700}.banner{display:block;text-decoration:none;background:var(--warn-bg);border:1px solid rgba(198,40,40,.25);border-radius:var(--radius);padding:.8rem 1.2rem;margin:1rem 0}.banner b{color:var(--warn)}.banner .hint{color:var(--ink-2);font-size:.88rem;margin-top:.15rem}.banner.clean{background:var(--good-bg);border-color:rgba(46,125,50,.25)}.banner.clean b{color:var(--good)}.login-wrap{display:flex;justify-content:center;padding:3.5rem 1rem 2rem}.login-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:2rem 2.2rem 1.6rem;width:100%;max-width:22rem}.login-brand{font-size:1.6rem;font-weight:700}.login-brand span{color:var(--primary)}.login-sub{color:var(--ink-3);font-size:.92rem;margin:.3rem 0 1.2rem}.login-card label{display:block;font-size:.82rem;font-weight:600;color:var(--ink-2);margin:.8rem 0 .25rem}.login-card input{width:100%;padding:.55rem .7rem;font-size:1rem;border:1px solid var(--line-2);border-radius:8px;background:var(--bg);color:var(--ink)}.login-card input:focus{outline:2px solid var(--primary-soft);border-color:var(--primary)}.login-card button{width:100%;margin-top:1.2rem;padding:.6rem;font-size:1rem;font-weight:600;color:#fff;background:var(--primary);border:none;border-radius:8px;cursor:pointer}.login-card button:hover{background:var(--primary-dark)}.login-ms{display:block;width:100%;margin-top:1.2rem;padding:.6rem;box-sizing:border-box;text-align:center;text-decoration:none;font-size:1rem;font-weight:600;color:#fff;background:#2f2f2f;border-radius:8px}.login-ms:hover{background:#1c1917}.login-err{background:var(--warn-bg);border:1px solid rgba(198,40,40,.25);color:var(--warn);border-radius:8px;padding:.5rem .8rem;font-size:.88rem;margin:0 0 .4rem}.login-note{color:var(--ink-3);font-size:.8rem;margin-top:1.2rem}.pill{display:inline-block;padding:.1rem .55rem;border-radius:999px;font-size:.75rem;font-weight:600}.pill.fix{background:var(--warn-bg);color:var(--warn)}.pill.check{background:var(--primary-soft);color:var(--primary-dark)}.pill.ok{background:var(--good-bg);color:var(--good)}.foot{max-width:68rem;margin:0 auto;padding:1rem 2rem 2rem;font-size:.8rem;border-top:1px solid var(--line)}.foot,.note{color:var(--ink-3)}.note{font-size:.85rem;margin:.5rem 0 0}body{min-height:100vh;display:flex;flex-direction:column}.app-top{position:-webkit-sticky;position:sticky;top:0;z-index:50;gap:18px;padding:12px 28px;background:rgba(255,255,255,.94);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}.app-logo,.app-top{display:flex;align-items:center}.app-logo{gap:12px;text-decoration:none;color:var(--ink)}.app-logo img{height:26px;display:block}.app-logo .app-name{font-weight:650;font-size:15px;padding-left:12px;border-left:1px solid var(--line-2)}.app-nav{display:flex;gap:4px;margin-left:8px}.app-nav a{font-size:13.5px;color:var(--ink-2);text-decoration:none;padding:6px 12px;border-radius:999px}.app-nav a:hover{background:#f4f2f1;color:var(--ink)}.app-nav a.on{background:var(--ink);color:#fff}.app-spacer{margin-left:auto}.app-main{padding:36px 28px 64px;flex:1 1}.app-foot,.app-main{width:100%;max-width:1320px;margin:0 auto}.app-foot{padding:18px 28px 28px;font-size:12px;border-top:1px solid var(--line);display:flex;gap:16px;flex-wrap:wrap}.app-foot,.app-foot a{color:var(--ink-3)}.hello{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;flex-wrap:wrap;margin-bottom:28px}.hello h1{font-size:34px;letter-spacing:-.02em;margin:0;font-weight:700}.hello p{margin:6px 0 0;color:var(--ink-2);font-size:15px}.hello .asof{font-size:12.5px;color:var(--ink-3);text-align:right}.cols{display:grid;grid-template-columns:1.35fr 1fr 1fr;grid-gap:22px;gap:22px;align-items:start}@media (max-width:1080px){.cols{grid-template-columns:1fr 1fr}.cols>.col:first-child{grid-column:1/-1}}@media (max-width:720px){.cols{grid-template-columns:1fr}.app-top{padding:10px 16px}.app-main{padding:24px 16px 48px}.app-nav{display:none}}.col-head{display:flex;align-items:baseline;justify-content:space-between;margin:0 2px 12px}.col-head h2{margin:0;text-transform:uppercase;letter-spacing:.09em;font-weight:650}.col-head h2,.col-head span{font-size:12px;color:var(--ink-3)}.panel{background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);padding:18px}.panel+.panel{margin-top:14px}.panel-title{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}.panel-title b{font-size:15px}.panel-title a{font-size:12.5px;color:var(--primary-dark);text-decoration:none;font-weight:600;white-space:nowrap}.panel-title a:hover{text-decoration:underline}.panel .muted{color:var(--ink-3);font-size:12px}.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(128px,1fr));grid-gap:10px;gap:10px}.tile{border:1px solid var(--line);border-radius:12px;padding:12px 14px;background:#fcfcfc}.tile .t-label{font-size:11.5px;color:var(--ink-3);text-transform:uppercase;letter-spacing:.05em;font-weight:600}.tile .t-value{font-size:22px;font-weight:700;letter-spacing:-.01em;margin-top:4px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.tile .t-sub{font-size:12px;color:var(--ink-2);margin-top:2px}.tile.warn{border-color:rgba(198,40,40,.25);background:var(--warn-bg)}.tile.warn .t-sub{color:var(--warn)}.tile.good .t-sub{color:var(--good)}.mcard{display:block;text-decoration:none;color:inherit}.mcard .m-name{font-weight:650;font-size:15.5px}.mcard .m-cad{font-size:12px;color:var(--ink-3);margin-top:2px}.mrow{display:flex;justify-content:space-between;gap:12px;font-size:13px;padding:8px 0;border-top:1px solid #f2f2f2}.mrow:first-of-type{border-top:none}.mrow .k{color:var(--ink-3)}.mrow .v{font-weight:600;text-align:right}.mlinks{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap}.btn{display:inline-flex;align-items:center;gap:6px;font-family:inherit;font-weight:600;font-size:13px;line-height:1;padding:9px 14px;border-radius:10px;text-decoration:none;cursor:pointer;border:1px solid var(--line-2);background:#fff;color:var(--ink)}.btn.primary,.btn:hover{border-color:var(--primary)}.btn.primary{background:var(--primary);color:#fff}.btn.primary:hover{background:var(--primary-dark);border-color:var(--primary-dark)}.btn.dark{background:var(--ink);border-color:var(--ink);color:#fff}.btn.danger{color:var(--warn)}.btn.small{padding:6px 10px;font-size:12px;border-radius:8px}.dcard{display:flex;gap:14px;align-items:flex-start;text-decoration:none;color:inherit;transition:border-color .15s,transform .15s}.dcard:hover{border-color:var(--primary);transform:translateY(-2px)}.dicon{width:38px;height:38px;border-radius:10px;flex:none;display:flex;align-items:center;justify-content:center;background:var(--primary-soft);color:var(--primary-dark)}.dcard .d-name{font-weight:650;font-size:15px}.dcard .d-blurb{font-size:12.5px;color:var(--ink-2);margin-top:3px;line-height:1.45}.dcard .d-asof{font-size:11.5px;color:var(--ink-3);margin-top:6px}.empty{text-align:center;padding:28px 18px;color:var(--ink-2);font-size:13.5px}.empty b{display:block;color:var(--ink);font-size:15px;margin-bottom:4px}.signin{flex:1 1;display:grid;grid-template-columns:1.1fr 1fr;min-height:100vh}.signin-art{position:relative;overflow:hidden;color:#fff;padding:48px 56px;background:radial-gradient(900px 500px at 15% 110%,rgba(236,96,61,.55),transparent 60%),radial-gradient(700px 420px at 95% -10%,rgba(236,96,61,.22),transparent 60%),#151211;display:flex;flex-direction:column;justify-content:space-between}.signin-art img{height:30px;width:auto;align-self:flex-start;filter:brightness(0) invert(1);opacity:.95}.signin-art h1{font-size:54px;line-height:1.02;letter-spacing:-.03em;margin:0 0 18px;font-weight:700}.signin-art h1 span{color:#ff8a6b}.signin-art p{font-size:17px;color:rgba(255,255,255,.78);max-width:460px;line-height:1.55;margin:0}.signin-points{display:grid;grid-gap:14px;gap:14px;margin-top:36px;max-width:460px}.signin-points div{display:flex;gap:12px;align-items:flex-start;font-size:14px;color:rgba(255,255,255,.86)}.signin-points i{flex:none;width:26px;height:26px;border-radius:8px;background:rgba(255,255,255,.1);display:flex;align-items:center;justify-content:center;font-style:normal;font-size:13px}.signin-fine{font-size:12px;color:rgba(255,255,255,.5)}.signin-side{display:flex;align-items:center;justify-content:center;padding:48px 28px;background:var(--bg)}.signin-card{width:100%;max-width:380px}.signin-card h2{font-size:26px;letter-spacing:-.01em;margin:0 0 6px;color:var(--ink)}.signin-card .lead{color:var(--ink-2);font-size:14.5px;margin:0 0 24px;line-height:1.5}.ms-btn{display:flex;align-items:center;justify-content:center;gap:12px;width:100%;padding:13px 16px;border-radius:12px;text-decoration:none;font-weight:600;font-size:15px;color:#fff;background:#151211;border:1px solid #151211;transition:transform .1s,box-shadow .15s}.ms-btn:hover{box-shadow:0 6px 18px rgba(20,18,17,.25);transform:translateY(-1px)}.signin-msg{border-radius:12px;padding:12px 14px;font-size:13.5px;line-height:1.45;margin:0 0 18px}.signin-msg.err{background:var(--warn-bg);color:var(--warn);border:1px solid rgba(198,40,40,.2)}.signin-msg.info{background:#f1f5f2;color:#2f4f37;border:1px solid rgba(46,125,50,.18)}.signin-msg a{color:inherit;font-weight:600}.signin-help{margin-top:26px;padding-top:18px;border-top:1px solid var(--line);font-size:12.5px;color:var(--ink-3);line-height:1.55}.signin-card form label{display:block;font-size:12px;font-weight:600;color:var(--ink-2);margin:14px 0 5px}.signin-card form input{width:100%;padding:10px 12px;font-size:15px;border:1px solid var(--line-2);border-radius:10px;background:#fff}.signin-card form button{width:100%;margin-top:16px;padding:11px;font-size:15px;font-weight:600;color:#fff;background:var(--primary);border:none;border-radius:10px;cursor:pointer}.signin-dev{margin-top:26px;padding-top:16px;border-top:1px dashed var(--line-2)}@media (max-width:900px){.signin{grid-template-columns:1fr}.signin-art{padding:32px 24px;min-height:0}.signin-art h1{font-size:38px}.signin-points{display:none}}.solo{max-width:620px;margin:6vh auto 0}.solo .panel{padding:28px}.who{display:flex;gap:16px;align-items:center}.who .w-name{font-size:20px;font-weight:700}.who .w-sub{font-size:13px;color:var(--ink-2);margin-top:2px}.steps{margin:18px 0 0;padding:0;list-style:none;display:grid;grid-gap:10px;gap:10px}.steps li{display:flex;gap:10px;font-size:14px;color:var(--ink-2);line-height:1.5}.steps li b{color:var(--ink)}.steps .dot{flex:none;width:22px;height:22px;border-radius:50%;background:var(--primary-soft);color:var(--primary-dark);font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:center}.chips{display:flex;flex-wrap:wrap;gap:6px}.chip{font-size:12px;padding:4px 10px;border-radius:999px;background:#f3f1f0;color:var(--ink-2)}.chip.on{background:var(--primary-soft);color:var(--primary-dark);font-weight:600}.bare{max-width:none;padding:0;margin:0;flex:1 1;display:flex;flex-direction:column}.admin-head{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:22px}.admin-head h1{margin:0;font-size:28px;letter-spacing:-.02em}.admin-tabs{display:flex;gap:4px;background:#f1efee;padding:4px;border-radius:12px}.admin-tabs a{padding:7px 14px;border-radius:9px;font-size:13.5px;text-decoration:none;color:var(--ink-2);font-weight:600}.admin-tabs a.on{background:#fff;color:var(--ink);box-shadow:0 1px 3px rgba(0,0,0,.08)}.flash{border-radius:12px;padding:11px 14px;font-size:13.5px;margin-bottom:16px}.flash.ok{background:var(--good-bg);color:var(--good);border:1px solid rgba(46,125,50,.2)}.flash.err{background:var(--warn-bg);color:var(--warn);border:1px solid rgba(198,40,40,.2)}.ptable{width:100%;border-collapse:separate;border-spacing:0;background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden;box-shadow:var(--shadow)}.ptable th{background:#faf9f8;font-size:11.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-3);padding:10px 14px}.ptable td{padding:12px 14px;border-top:1px solid #f1f1f1;border-bottom:none;vertical-align:middle;font-size:13.5px}.ptable tr:hover td{background:#fcfbfa}.pname{display:flex;gap:12px;align-items:center}.pname b{display:block;font-size:14px}.pname span{color:var(--ink-3);font-size:12px}.st{display:inline-block;font-size:11.5px;font-weight:700;padding:3px 9px;border-radius:999px}.st.waiting{background:#fff4e5;color:#9a5b13}.st.active{background:var(--good-bg);color:var(--good)}.st.blocked{background:var(--warn-bg);color:var(--warn)}.st.admin{background:#151211;color:#fff}.st.owner{background:var(--primary);color:#fff}.st.guest{background:#ede7f6;color:#5b3f88}.wait-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));grid-gap:12px;gap:12px;margin-bottom:26px}.wait-card{display:flex;gap:12px;align-items:center;justify-content:space-between;border:1px solid #f3d9b5;background:#fffaf3;border-radius:14px;padding:12px 14px}.sect{font-size:12px;text-transform:uppercase;letter-spacing:.09em;color:var(--ink-3);font-weight:650;margin:0 2px 10px}.toggles{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));grid-gap:10px;gap:10px}.tog{display:flex;gap:12px;align-items:flex-start;border:1px solid var(--line);border-radius:12px;padding:12px 14px;cursor:pointer;background:#fff}.tog:has(input:checked){border-color:var(--primary);background:var(--primary-soft)}.tog input[type=checkbox]{width:18px;height:18px;margin-top:2px;accent-color:#ec603d;flex:none}.tog b{display:block;font-size:14px}.tog small{display:block;margin-top:2px;line-height:1.4}.tog .from,.tog small{color:var(--ink-2);font-size:12px}.tog .from{margin-top:8px;display:flex;gap:6px;align-items:center;flex-wrap:wrap}.tog .from input{font-size:12px;padding:4px 6px;border:1px solid var(--line-2);border-radius:6px}.actions-row{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-top:16px}.actions-row select{font-size:13px;padding:8px 10px;border:1px solid var(--line-2);border-radius:10px;background:#fff}.alog{list-style:none;margin:0;padding:0}.alog li{display:grid;grid-template-columns:150px 140px 1fr;grid-gap:14px;gap:14px;padding:10px 4px;border-top:1px solid #f1f1f1;font-size:13px}.alog li:first-child{border-top:none}.alog .a-when{color:var(--ink-3)}.alog .a-what{color:var(--ink-2);word-break:break-word}@media (max-width:720px){.alog li{grid-template-columns:1fr;gap:2px}.ptable .hide-sm{display:none}}