.app-shell{background:var(--cf-bone);height:100vh;max-height:100vh;overflow:hidden}.app-sider{max-height:100vh;background:var(--cf-ink)!important;height:100vh!important}.app-sider .ant-layout-sider-children{flex-direction:column;height:100%;display:flex;overflow:hidden}.app-sider-brand{height:72px;color:var(--cf-paper);border-bottom:1px solid #edebe61a;align-items:center;gap:12px;padding:0 16px;display:flex}.app-sider.ant-layout-sider-collapsed .app-sider-brand{justify-content:center;padding:0 8px}.app-sider-brand-copy{flex-direction:column;min-width:0;line-height:1.1;display:flex}.app-sider-brand-copy strong{font-family:var(--cf-font-display);letter-spacing:-.03em;font-size:20px;font-weight:600}.app-sider-brand-copy span{font-family:var(--cf-font-mono);color:var(--cf-led);letter-spacing:.12em;text-transform:uppercase;margin-top:3px;font-size:10px}.app-sider-mark{flex-shrink:0}.app-sider-menu{flex:1;min-height:0;padding:14px 0;overflow-y:auto;background:0 0!important;border-inline-end:0!important}.app-sider-menu .ant-menu-item{position:relative}.app-sider-menu .ant-menu-item-selected:before{content:"";background:var(--cf-led);border-radius:2px;width:2px;position:absolute;top:10px;bottom:10px;left:8px}.app-header{border:1px solid var(--cf-hairline);height:72px;box-shadow:var(--cf-shadow);border-radius:12px;flex-shrink:0;justify-content:space-between;align-items:center;gap:16px;margin:16px 16px 0;display:flex;background:var(--cf-white)!important;padding-inline:22px!important;line-height:1.3!important}.app-header-copy h1{color:var(--cf-ink);margin:0;font-size:22px}.app-header-user{align-items:center;gap:12px;display:flex}.app-header-user-plate{background:var(--cf-paper);border:1px solid var(--cf-hairline);cursor:pointer;color:inherit;font:inherit;border-radius:999px;align-items:center;gap:10px;padding:6px 12px 6px 6px;display:flex}.app-header-user-plate:hover{border-color:var(--cf-hairline-strong)}.app-header-user-caret{color:var(--cf-ink-tertiary);font-size:10px}.app-header-user-meta{text-align:left;padding-right:4px}.app-header-user-meta strong{color:var(--cf-ink);font-size:13px;line-height:1.2;display:block}.app-main{background:var(--cf-bone);min-width:0;height:100vh;overflow:hidden}.app-content{background:0 0;flex:1;min-height:0;padding:16px 16px 24px;overflow:auto}.page-hero{justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:18px;display:flex}.page-hero h2{color:var(--cf-ink);margin:0;font-size:30px}.page-hero p{max-width:640px;color:var(--cf-ink-secondary);margin:6px 0 0;font-size:15px;line-height:1.55}.home-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px;display:grid}.home-tile{background:var(--cf-white);border:1px solid var(--cf-hairline);min-height:176px;color:inherit;box-shadow:var(--cf-shadow);border-radius:12px;flex-direction:column;padding:20px;text-decoration:none;transition:transform .16s,border-color .16s;display:flex}.home-tile:hover{border-color:var(--cf-field);transform:translateY(-2px)}.home-tile-icon{width:40px;height:40px;color:var(--cf-field);background:#eef4f1;border-radius:10px;place-items:center;margin-bottom:16px;font-size:18px;display:grid}.home-tile h3{font-family:var(--cf-font-display);color:var(--cf-ink);margin:0 0 6px;font-size:18px;font-weight:600}.home-tile p{color:var(--cf-ink-secondary);margin:0;font-size:13px;line-height:1.5}.home-tile-open{font-family:var(--cf-font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--cf-field);margin-top:auto;padding-top:16px;font-size:11px}.surface-card .ant-card-head{border-bottom-color:var(--cf-hairline)}.ant-layout-sider-trigger{border-top:1px solid #edebe61a;color:var(--cf-paper)!important;background:#101a18!important}.stat-row{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin-bottom:18px;display:grid}.stat-chip{background:var(--cf-white);border:1px solid var(--cf-hairline);color:var(--cf-field);box-shadow:var(--cf-shadow);border-radius:12px;align-items:center;gap:12px;padding:16px 18px;display:flex}.stat-chip strong{font-family:var(--cf-font-mono);color:var(--cf-ink);font-size:22px;line-height:1}.stat-chip span{color:var(--cf-ink-secondary);font-size:13px}.table-strong{color:var(--cf-ink);font-weight:600}.muted{color:var(--cf-ink-tertiary)}.tag-wrap{flex-wrap:wrap;gap:4px;display:flex}.add-panel{height:100%;background:var(--cf-paper)!important;border-radius:12px!important}.add-panel-lead{color:var(--cf-ink-secondary);margin:-4px 0 16px;font-size:13px}.form-actions{background:var(--cf-white);border:1px solid var(--cf-hairline);box-shadow:var(--cf-shadow);border-radius:12px;justify-content:flex-end;align-items:center;gap:10px;padding:14px 18px;display:flex}.create-steps{background:var(--cf-white);border:1px solid var(--cf-hairline);box-shadow:var(--cf-shadow);border-radius:12px;margin-bottom:16px;padding:18px 20px 8px}.create-step-card{margin-bottom:16px}.create-review{grid-template-columns:140px 1fr;gap:10px 16px;font-size:14px;display:grid}.create-review dt{font-family:var(--cf-font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--cf-ink-tertiary);margin:0;font-size:11px}.create-review dd{color:var(--cf-ink);margin:0}.location-pin-map{border:1px solid var(--cf-hairline);background:var(--cf-bone-deep);border-radius:8px;width:100%;height:280px;overflow:hidden}.location-pin-label{font-family:var(--cf-font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--cf-ink-muted);margin-bottom:6px;font-size:11px;display:block}.role-tag{margin-inline-end:0;color:var(--cf-ink-secondary)!important;background:0 0!important;border:0!important;padding-inline:0!important}.face-b{font-size:18px;line-height:1.6}.face-b .ant-card-head-title{font-family:var(--cf-font-display);font-size:22px}.auth-shell{--auth-ink:#14201d;--auth-paper:#f3efe6;isolation:isolate;background:var(--auth-ink);min-height:100vh;color:var(--auth-paper);grid-template-columns:1fr;grid-template-areas:"rail""manifest""panel""ticker";display:grid;position:relative}.auth-stage{z-index:0;pointer-events:none;position:absolute;inset:0;overflow:hidden}.auth-stage-grid{background-image:linear-gradient(#edebe60e 1px,#0000 1px),linear-gradient(90deg,#edebe60e 1px,#0000 1px);background-size:24px 24px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#000000b3,#0000 88%);mask-image:linear-gradient(#000000b3,#0000 88%)}.auth-rail,.auth-manifest,.auth-panel,.auth-ticker{z-index:1;position:relative}.auth-rail{background:#101a188c;border-bottom:1px solid #edebe61f;grid-area:rail;justify-content:space-between;align-items:center;gap:16px;height:64px;padding:0 20px;display:flex}.auth-rail-brand{align-items:center;gap:12px;min-width:0;display:flex}.auth-rail-brand strong{font-family:var(--cf-font-display);letter-spacing:-.03em;font-size:20px;font-weight:600;line-height:1;display:block}.auth-rail-brand span{font-family:var(--cf-font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--cf-led);margin-top:3px;font-size:9px;display:block}.auth-rail-meta{font-family:var(--cf-font-mono);letter-spacing:.08em;color:#f7f6f3b3;align-items:center;gap:10px;font-size:12px;display:flex}.auth-rail-meta strong{color:var(--auth-paper);letter-spacing:.06em;font-size:16px;font-weight:500}.auth-rail-dot{background:var(--cf-led);width:4px;height:4px;box-shadow:0 0 8px var(--cf-led);border-radius:50%}.auth-manifest{grid-area:manifest;padding:28px 20px 8px}.auth-brand-kicker{font-family:var(--cf-font-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--cf-led);margin:0 0 12px;font-size:11px}.auth-manifest h1{font-family:var(--cf-font-display);letter-spacing:-.05em;margin:0 0 16px;font-size:clamp(36px,7vw,72px);font-weight:600;line-height:.92}.auth-manifest p{color:#f7f6f3c2;max-width:46ch;margin:0;font-size:16px;line-height:1.65}.auth-loop{width:min(100%,560px);margin-top:36px;display:none}.auth-panel{grid-area:panel;justify-content:center;align-items:center;padding:12px 16px 20px;display:flex}.auth-plate{filter:drop-shadow(0 24px 48px #00000061);width:100%;max-width:440px}.auth-plate-face{color:var(--cf-ink);clip-path:polygon(14px 0,calc(100% - 14px) 0,100% 14px,100% calc(100% - 14px),calc(100% - 14px) 100%,14px 100%,0 calc(100% - 14px),0 14px);background:linear-gradient(#f8f5ee 0%,#efe8d8 100%);padding:32px 28px 18px;position:relative}.auth-card-led{background:var(--cf-led);height:2px;position:absolute;top:14px;left:36px;right:36px}.auth-rivet{background:radial-gradient(circle at 35% 30%,#d7d2c6,#8a867c 70%);border-radius:50%;width:8px;height:8px;position:absolute;box-shadow:inset 0 1px 1px #ffffff73}.auth-rivet-tl{top:16px;left:16px}.auth-rivet-tr{top:16px;right:16px}.auth-rivet-bl{bottom:16px;left:16px}.auth-rivet-br{bottom:16px;right:16px}.auth-card-kicker{color:var(--cf-led-deep);font-family:var(--cf-font-mono);letter-spacing:.14em;text-transform:uppercase;margin:0 0 8px;font-size:11px;font-weight:500}.auth-plate-face h2{color:var(--cf-ink);margin:0 0 8px;font-size:clamp(28px,4vw,34px);line-height:1.05}.auth-card-lead{color:var(--cf-ink-secondary);margin:0 0 22px;font-size:14px;line-height:1.5}.auth-plate-face .ant-form-item-label>label{font-family:var(--cf-font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--cf-ink-muted);font-size:11px}.auth-plate-face .ant-input-affix-wrapper,.auth-plate-face .ant-input-affix-wrapper-lg,.auth-plate-face .ant-input-lg{background:#fbfaf6;border-color:#c9c5bb;border-radius:0}.auth-plate-face .ant-btn-primary{letter-spacing:.12em;text-transform:uppercase;height:52px;font-size:13px;font-family:var(--cf-font-mono);border-radius:0}.auth-card-serial{font-family:var(--cf-font-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--cf-ink-tertiary);border-top:1px solid #d9d6cf;margin:16px 0 0;padding-top:14px;font-size:10px}.auth-alt{text-align:left;margin:4px 0 0}.auth-plate-face .auth-alt.ant-typography{color:var(--cf-ink-secondary);margin-bottom:0}.auth-alt a{color:var(--cf-field);font-weight:600}.otp-input{letter-spacing:.28em;font-family:var(--cf-font-mono)!important;font-size:18px!important}.auth-ticker{min-height:44px;font-family:var(--cf-font-mono);letter-spacing:.1em;text-transform:uppercase;color:#f7f6f39e;white-space:nowrap;background:#101a18;border-top:1px solid #edebe61f;grid-area:ticker;align-items:center;gap:22px;padding:0 20px;font-size:11px;display:flex;overflow:auto}.auth-ticker-led{background:#2e6b5b;border-radius:50%;flex-shrink:0;width:8px;height:8px;box-shadow:0 0 10px #2e6b5b}.auth-ticker em{color:#bfd3cb;font-style:normal}.auth-ticker strong{color:var(--auth-paper);letter-spacing:.08em;font-size:15px;font-weight:500}@media (width>=960px){.auth-shell{grid-template:"rail rail"72px"manifest panel"1fr"ticker ticker"48px/minmax(0,1.2fr) minmax(420px,.8fr)}.auth-rail{height:72px;padding:0 36px}.auth-manifest{flex-direction:column;justify-content:center;padding:24px 24px 24px 56px;display:flex}.auth-loop{display:block}.auth-panel{padding:24px 48px 24px 12px}.auth-ticker{gap:28px;padding:0 36px}}.ant-modal-mask{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#14201d7a!important}.ant-modal .ant-modal-container{padding-bottom:24px}.ant-modal .ant-modal-content{border:1px solid var(--cf-hairline);overflow:hidden;box-shadow:var(--cf-shadow)!important;border-radius:12px!important;padding:0!important}.ant-modal .ant-modal-header{border-bottom:1px solid var(--cf-hairline);background:var(--cf-paper);margin:0!important;padding:20px 24px 14px!important}.ant-modal .ant-modal-title{font-family:var(--cf-font-display);color:var(--cf-ink);font-weight:600;line-height:1.3}.ant-modal .ant-modal-close{top:16px;inset-inline-end:16px}.ant-modal .ant-modal-body{max-height:min(68vh,640px);overflow:auto;padding:20px 24px 8px!important}.ant-modal .ant-modal-footer{border-top:1px solid var(--cf-hairline);background:var(--cf-paper);margin:0!important;padding:14px 24px 18px!important}.app-modal-title{flex-direction:column;gap:4px;display:flex}.app-modal-kicker{color:var(--cf-field);font-family:var(--cf-font-mono);letter-spacing:.08em;text-transform:uppercase;font-size:11px;font-weight:500}.app-modal-heading{font-size:18px;font-weight:600;font-family:var(--cf-font-display);color:var(--cf-ink)}.app-modal-lead{color:var(--cf-ink-secondary);margin:0;font-size:13px;font-weight:400}*,:before,:after{box-sizing:border-box}:root{--cf-ink:#14201d;--cf-ink-muted:#3e4a46;--cf-ink-secondary:#5c6763;--cf-ink-tertiary:#8a8a85;--cf-field:#2e6b5b;--cf-field-deep:#1b443a;--cf-led:#a9752a;--cf-led-deep:#7a5518;--cf-emergency:#c2110f;--cf-info:#2f6e8f;--cf-bone:#edebe6;--cf-bone-deep:#e2dfd7;--cf-paper:#f7f6f3;--cf-paper-warm:#f2f0ea;--cf-hairline:#d9d6cf;--cf-hairline-strong:#c9c5bb;--cf-white:#fff;--cf-font:"IBM Plex Sans", Helvetica, Arial, sans-serif;--cf-font-display:"IBM Plex Sans Condensed", "IBM Plex Sans", Helvetica, Arial, sans-serif;--cf-font-mono:"IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--cf-shadow:0 1px 0 #14201d0a, 0 18px 40px #14201d0f}html,body,#root{background:var(--cf-bone);height:100%;color:var(--cf-ink);font-family:var(--cf-font);-webkit-font-smoothing:antialiased;margin:0;font-size:15px;line-height:1.5}h1,h2,h3,.page-hero h2,.auth-card h2,.app-header-copy h1{font-family:var(--cf-font-display);letter-spacing:-.03em;font-weight:600}code,kbd,pre,.otp-input,.asset-tag{font-family:var(--cf-font-mono)}.page-kicker{font-family:var(--cf-font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--cf-led);margin:0 0 6px;font-size:11px;font-weight:500}.brand-plate{border-radius:10px;flex-shrink:0;place-items:center;display:grid}.brand-plate--on-bone{background:var(--cf-white);border:1px solid var(--cf-hairline)}.brand-plate--on-ink{background:#f7f6f314;border:1px solid #edebe629}.anticon{font-size:16px}.ant-card{border-color:var(--cf-hairline)!important;box-shadow:var(--cf-shadow)!important}.ant-card .ant-card-head{min-height:56px;font-family:var(--cf-font-display);border-bottom-color:var(--cf-hairline);font-weight:600}.ant-btn{font-family:var(--cf-font);box-shadow:none!important}.ant-btn-primary{background:var(--cf-ink)}.ant-btn-primary:hover,.ant-btn-primary:focus{background:var(--cf-field-deep)!important}.ant-tag{font-family:var(--cf-font-mono);letter-spacing:.04em;border-radius:4px;font-size:11px}.ant-input-affix-wrapper .anticon,.ant-input-password .anticon{color:var(--cf-ink-tertiary)}.ant-table-wrapper .ant-table{font-size:14px}.ant-form-item-label>label{color:var(--cf-ink-muted);font-size:13px}
