:root{font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;color:#183731;background:#f4f7f4;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}a{color:#226e58;text-decoration:none}a:hover{text-decoration:underline}.splash{display:flex;min-height:100vh;align-items:center;justify-content:center;flex-direction:column}.logo-mark{font-size:30px;color:#4d936d}.shell{display:flex;min-height:100vh}.side{width:253px;background:#113d33;color:#ecf6eb;flex-shrink:0;display:flex;flex-direction:column;padding:27px 15px;position:sticky;top:0;height:100vh}.brand{display:flex;align-items:center;gap:10px;font-weight:850;font-size:20px;letter-spacing:-.6px;padding:3px 12px 28px}.brand em{font-style:normal;color:#bddd9f}.brand-icon{width:35px;height:35px;display:grid;place-items:center;background:#2d7257;border-radius:10px;color:white}.side small{color:#98b9ad;text-transform:uppercase;letter-spacing:1.3px;font-size:10px;padding:16px 14px 11px}.nav{display:flex;align-items:center;gap:12px;width:100%;border:0;background:transparent;color:#d3e5de;border-radius:9px;padding:12px 15px;margin:2px 0;text-align:left;font-weight:650;font-size:13px}.nav:hover,.nav.active{background:#27634e;color:white}.nav .ico{width:20px;text-align:center;font-size:16px}.side-bottom{margin-top:auto;border-top:1px solid #326153;padding:17px 10px 0;font-size:12px}.side-bottom button{background:none;color:#b5ded0;padding:10px 0;border:0}.workspace{min-width:0;flex:1}.top{height:77px;border-bottom:1px solid #e2e9e3;display:flex;align-items:center;justify-content:space-between;padding:0 35px;background:white;position:sticky;top:0;z-index:5}.breadcrumbs{font-size:12px;color:#85938b}.top strong{font-size:15px}.top-right{display:flex;align-items:center;gap:12px}.trial{background:#eaf5e6;color:#37634e;border-radius:20px;padding:8px 12px;font-size:11px;font-weight:800}.avatar{width:34px;height:34px;border-radius:50%;background:#d7ead7;color:#124334;display:grid;place-items:center;font-weight:850}.main{padding:32px 36px;max-width:1400px;margin:auto}.eyebrow{font-size:11px;color:#678c75;letter-spacing:2px;text-transform:uppercase;font-weight:800}.hgroup{display:flex;justify-content:space-between;gap:18px;align-items:center;margin-bottom:23px;flex-wrap:wrap}.hgroup h1{font-size:31px;letter-spacing:-1.4px;margin:7px 0 6px}.muted{color:#78887f}.subtitle{margin:0;font-size:13px;color:#78887f}.btn{border:0;background:#154637;color:white;border-radius:10px;padding:12px 17px;font-size:12px;font-weight:780}.btn:hover{background:#236349}.btn.secondary{background:#e9f1eb;color:#1a513d}.btn.ghost{background:#fff;color:#275741;border:1px solid #c9d9cc}.btn.danger{background:#af3d3d}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin-bottom:24px}.stat{background:#fff;border:1px solid #e5ece6;border-radius:14px;padding:20px 21px}.stat label{font-size:12px;color:#73867b}.stat .big{font-size:31px;font-weight:800;letter-spacing:-1.6px;margin-top:10px}.stat .detail{font-size:11px;color:#5f8e74;margin-top:8px}.columns{display:grid;grid-template-columns:1.5fr 1fr;gap:20px}.card{background:white;border:1px solid #e1e9e2;border-radius:14px;padding:20px;margin-bottom:18px;min-width:0}.card h3{margin:2px 0 16px;font-size:16px;letter-spacing:-.3px}.card-title{display:flex;justify-content:space-between;align-items:center;gap:8px}.table-scroll{overflow:auto}table{width:100%;border-collapse:collapse;font-size:12px}th{text-align:left;color:#809188;font-weight:700;padding:11px;border-bottom:1px solid #e9eee9}td{padding:14px 11px;border-bottom:1px solid #f0f2f0}tr:last-child td{border-bottom:0}.pill{display:inline-block;border-radius:30px;padding:6px 9px;background:#ecf3ed;font-size:11px;font-weight:750;color:#326748;white-space:nowrap}.pill.warn{color:#916a25;background:#fff4da}.pill.bad{color:#a13b36;background:#ffeae7}.item{border:1px solid #e7ede7;border-radius:10px;padding:15px;margin-bottom:10px;display:flex;justify-content:space-between;gap:12px;align-items:center}.item strong{font-size:13px}.item p{margin:6px 0 0;color:#76897d;font-size:12px}.item-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.grid-two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.field{margin-bottom:13px}.field label{display:block;margin-bottom:7px;font-size:12px;color:#456455;font-weight:760}.field input,.field select,.field textarea,.input{width:100%;border:1px solid #d4e0d6;border-radius:9px;background:#fff;padding:11px 12px;color:#17382c;outline-color:#6a9e7b;min-width:0}.field textarea{min-height:95px}.empty{text-align:center;color:#81948a;padding:48px 16px;border:1px dashed #d8e5db;border-radius:12px;font-size:13px}.auth-layout{min-height:100vh;display:grid;grid-template-columns:1fr 1fr}.auth-hero{padding:7vw;display:flex;flex-direction:column;justify-content:center;color:white;background:linear-gradient(135deg,#0e3029,#1d5b49);position:relative;overflow:hidden}.auth-hero:after{content:'▣';position:absolute;font-size:500px;color:#ffffff06;right:-70px;bottom:-200px}.auth-hero h1{font-size:clamp(38px,4vw,65px);line-height:1.05;letter-spacing:-3px;max-width:550px}.auth-hero p{color:#c2dacf;line-height:1.7;max-width:500px}.auth-panel{display:grid;place-items:center;padding:30px}.auth-card{width:min(430px,100%);background:white;border:1px solid #e4ebe6;border-radius:16px;padding:32px;box-shadow:0 12px 45px #112f2710}.auth-card h2{font-size:25px;letter-spacing:-.8px;margin:5px 0 7px}.auth-card p{font-size:13px;color:#7d8f85}.auth-switch{display:flex;background:#f3f6f2;padding:4px;border-radius:10px;margin:18px 0}.auth-switch button{flex:1;border:0;background:none;padding:10px;border-radius:7px;color:#5e7668}.auth-switch button.active{background:white;box-shadow:0 1px 3px #1e392117;color:#144632;font-weight:700}.form-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}.notice{padding:12px 14px;border-radius:9px;background:#eaf5e7;color:#256146;font-size:12px;margin:12px 0;line-height:1.5}.notice.error{background:#ffece8;color:#963f35}.modal-bg{position:fixed;inset:0;background:#10291e9c;display:grid;place-items:center;z-index:50;padding:15px}.modal{background:white;border-radius:15px;padding:23px;width:min(550px,100%);max-height:95vh;overflow-y:auto;box-shadow:0 25px 70px #0004}.modal h2{margin:0 0 6px;font-size:20px}.modal .muted{font-size:12px;margin-bottom:17px}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:15px}.toast{position:fixed;bottom:22px;right:24px;background:#1a513e;color:white;padding:14px 18px;border-radius:11px;z-index:90;font-size:12px;box-shadow:0 15px 30px #1b433d3d}.invite-url{word-break:break-all;background:#f1f6f1;border:1px solid #d7e5d7;padding:12px;border-radius:9px;font-family:monospace;font-size:12px}.badge-icon{font-size:26px}.login-links{display:flex;justify-content:space-between;gap:15px;margin-top:15px;font-size:12px}.mobile-menu{display:none}.danger-link{color:#b43737}.photo-thumb{height:130px;width:100%;object-fit:cover;border-radius:10px;background:#eaf3e9}.photos{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.checkline{display:flex;align-items:center;gap:12px;border:1px solid #e2eae2;border-radius:8px;padding:12px;margin:8px 0;font-size:13px}.checkline select{max-width:135px;margin-left:auto}.wide{grid-column:1/-1}@media(max-width:950px){.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.columns{grid-template-columns:1fr}.side{width:205px}.main{padding:25px}.auth-layout{grid-template-columns:1fr}.auth-hero{display:none}}@media(max-width:650px){.side{display:none}.top{height:70px;padding:0 16px}.main{padding:20px 14px}.stats{gap:10px}.stat{padding:15px}.stat .big{font-size:26px}.form-grid,.grid-two{grid-template-columns:1fr}.hgroup h1{font-size:26px}.mobile-menu{display:block}.columns{gap:0}.photos{grid-template-columns:repeat(2,1fr)}.auth-card{padding:23px}.modal{padding:19px}}

/* Facilory 2026 visual system — shared with the native SwiftUI redesign */
:root {--fp-ink:#172238;--fp-muted:#667386;--fp-blue:#415edb;--fp-navy:#101b2d;--fp-surface:#f5f7fb;--fp-border:#e3e8f1;}
body{color:var(--fp-ink);background:var(--fp-surface)}
a{color:var(--fp-blue)}
.side{background:var(--fp-navy);padding:26px 16px;box-shadow:6px 0 30px #17233c08}
.brand{font-size:19px;letter-spacing:-.65px;padding-bottom:34px}
.brand em{color:#a9baff}
.brand-icon{background:#425fe6;border-radius:12px;width:38px;height:38px}
.side small{color:#8f9dbc;letter-spacing:1.65px}
.nav{border-radius:12px;color:#c4cde2;font-size:13px;padding:13px 15px}
.nav:hover{background:#1e3152;color:#fff}
.nav.active{background:#354c87;color:#fff;box-shadow:inset 3px 0 0 #afbcff}
.side-bottom{border-top-color:#30405c}
.side-bottom button{color:#aabcf0}
.top{border-bottom-color:var(--fp-border);height:82px;box-shadow:0 2px 20px #101b2d04}
.breadcrumbs,.muted,.subtitle{color:var(--fp-muted)}
.trial{color:#344aa6;background:#e9edff}
.avatar{background:#e9ecff;color:#3d55b7}
.main{max-width:1440px;padding:36px 42px}
.eyebrow{color:var(--fp-blue)}
.hgroup h1{font-size:34px;letter-spacing:-1.2px;color:var(--fp-ink)}
.btn{background:var(--fp-blue);border-radius:11px;font-size:13px;box-shadow:0 5px 13px #415edb16}
.btn:hover{background:#324cc7}
.btn.secondary{background:#e9edff;color:#354bc4}
.btn.ghost{color:#415edb;border-color:#d7ddf1}
.btn.danger{background:#c4484f}
.stat,.card,.item,.auth-card{border-color:var(--fp-border);border-radius:18px;background:#fff;box-shadow:0 5px 16px #17223804}
.stat{padding:25px 24px}
.stat .big{font-size:34px;color:var(--fp-ink)}
.stat .detail{color:#526cd5}
.stat label{color:var(--fp-muted)}
.card{padding:24px}
.card h3{color:var(--fp-ink)}
.pill{background:#edf1ff;color:#3d56bf}
.pill.warn{background:#fff4e6;color:#b56b20}
.pill.bad{color:#ac3848;background:#fff0f1}
.item{border-radius:13px}
.item p{color:var(--fp-muted)}
.field label{color:#46536d}
.field input,.field select,.field textarea,.input{border:1px solid #d8dfec;border-radius:11px;outline-color:#728af0;color:var(--fp-ink)}
.empty{color:var(--fp-muted);border-color:#d8dfec}
.auth-hero{background:linear-gradient(143deg,#101a30,#344dad 130%)}
.auth-hero h1{letter-spacing:-2.4px}
.auth-hero p{color:#cad3ee}
.auth-card{padding:38px;border-radius:23px;box-shadow:0 25px 75px #101a3011}
.auth-card h2{color:var(--fp-ink)}
.auth-card p{color:var(--fp-muted)}
.auth-switch{background:#f0f3fa}
.auth-switch button.active{color:var(--fp-blue);box-shadow:0 3px 9px #112c6120}
.notice{background:#edf1ff;color:#344eae}
.notice.error{background:#fff0f1;color:#ad3344}
.modal-bg{background:#0b1638a3}
.modal{border-radius:19px}
.toast{background:#17294e}
.invite-url{background:#f3f5fc;border-color:#dce2f6}
.checkline{border-color:var(--fp-border)}
@media(max-width:950px){.main{padding:28px 24px}}
@media(max-width:650px){.main{padding:22px 15px}.top{height:72px}.auth-card{padding:25px}}