:root{--midnight: #04181E;--blue: #338E9E;--cloud: #F7F9F7;--grey: #8E8A82;--satsuma: #F7AA56;--green: #2D9B6F;--amber: #F7AA56;--red: #D95B4A;--mid-surface: #0A2830;--mid-border: #1A3A44;--blue-dim: #1D5F6B;--surface-2: #0F3340;--surface-3: #163D4A;--font-display: "Barlow Condensed", sans-serif;--font-body: "Nunito Sans", sans-serif;--role-partner: var(--blue);--role-architect: var(--green);--role-designer: #7F77DD;--role-preservation: #D4537E;--role-marketing: var(--satsuma);--role-intern: var(--grey);--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--space-7: 48px;--space-8: 64px;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--header-h: 56px;--tabbar-h: 44px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%;background:var(--midnight);color:var(--cloud);font-family:var(--font-body);font-weight:300;-webkit-font-smoothing:antialiased}.app-shell{display:flex;flex-direction:column;height:100%}.app-header{height:var(--header-h);background:var(--mid-surface);border-bottom:1px solid var(--mid-border);display:flex;align-items:center;padding:0 var(--space-5);gap:var(--space-5);position:sticky;top:0;z-index:100;flex-shrink:0}.wordmark{font-family:var(--font-display);font-weight:600;font-size:18px;letter-spacing:.2em;text-transform:uppercase;color:var(--cloud);white-space:nowrap}.wordmark span{color:var(--blue)}.header-capacity{flex:1;min-width:0}.header-sync{font-family:var(--font-display);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--grey);white-space:nowrap}.tab-bar{height:var(--tabbar-h);background:var(--mid-surface);border-bottom:1px solid var(--mid-border);display:flex;align-items:stretch;padding:0 var(--space-5);gap:2px;flex-shrink:0}.tab-btn{background:none;border:none;border-bottom:2px solid transparent;color:var(--grey);font-family:var(--font-display);font-size:13px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;padding:0 var(--space-4);cursor:pointer;transition:color .15s,border-color .15s;white-space:nowrap}.tab-btn:hover{color:var(--cloud)}.tab-btn.active{color:var(--blue);border-bottom-color:var(--blue)}.app-main{flex:1;overflow-y:auto;padding:var(--space-5)}.pin-screen{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-5);background:var(--midnight)}.pin-logo{font-family:var(--font-display);font-weight:600;font-size:28px;letter-spacing:.25em;text-transform:uppercase;color:var(--cloud)}.pin-logo span{color:var(--blue)}.pin-label{font-family:var(--font-display);font-size:11px;letter-spacing:.15em;text-transform:uppercase;color:var(--grey)}.pin-input-row{display:flex;gap:var(--space-2)}.pin-dot{width:12px;height:12px;border-radius:50%;border:1.5px solid var(--mid-border);background:transparent;transition:background .1s,border-color .1s}.pin-dot.filled{background:var(--blue);border-color:var(--blue)}.pin-keypad{display:grid;grid-template-columns:repeat(3,56px);gap:var(--space-2)}.pin-key{height:56px;background:var(--mid-surface);border:1px solid var(--mid-border);border-radius:var(--radius-md);color:var(--cloud);font-family:var(--font-display);font-size:22px;font-weight:500;cursor:pointer;transition:background .1s,border-color .1s;display:flex;align-items:center;justify-content:center}.pin-key:hover{background:var(--surface-2);border-color:var(--blue-dim)}.pin-key:active{background:var(--blue-dim)}.pin-key.del{font-size:16px;color:var(--grey)}.pin-error{font-family:var(--font-display);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--red);height:16px}.capacity-bar-placeholder{height:8px;background:var(--mid-border);border-radius:4px;overflow:hidden;position:relative}.capacity-bar-placeholder:after{content:"";position:absolute;left:0;top:0;bottom:0;width:62%;background:var(--blue);border-radius:4px}.tab-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-8) var(--space-5);gap:var(--space-3);text-align:center}.tab-empty-label{font-family:var(--font-display);font-size:13px;letter-spacing:.15em;text-transform:uppercase;color:var(--grey)}.tab-empty-sub{font-size:13px;color:var(--blue-dim)}@media (max-width: 640px){.app-header{padding:0 var(--space-4);gap:var(--space-3)}.header-sync{display:none}.tab-btn{font-size:12px;padding:0 var(--space-3)}.app-main{padding:var(--space-4)}}
