.auth-screen{min-height:100vh;display:grid;grid-template-columns:1.1fr 1fr}.auth-hero{background:var(--ink-900);color:var(--paper);display:flex;align-items:center;padding:4rem 3.5rem;position:relative;overflow:hidden}.auth-hero-inner{max-width:480px;position:relative;z-index:1}.wordmark{font-family:var(--font-mono);font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;color:var(--amber-500);display:inline-block;margin-bottom:2.5rem}.auth-hero h1{font-family:var(--font-display);font-size:2.5rem;line-height:1.1;color:var(--paper);margin-bottom:1rem}.hero-copy{color:#a9afba;font-size:1rem;max-width:34ch;margin-bottom:3rem}.stub-stack{display:flex;flex-direction:column;gap:.75rem}.stub{background:#1b1f26;border:1px solid #2b303a;border-radius:var(--radius-md);padding:.9rem 1rem .75rem;display:flex;flex-direction:column;gap:.4rem}.stub-top{display:flex;align-items:baseline;gap:.6rem}.stub-type{font-family:var(--font-mono);font-size:.65rem;letter-spacing:.06em;color:var(--amber-500);border:1px solid #3a3120;border-radius:3px;padding:.1rem .4rem}.stub-label{font-size:.88rem;color:#e4e6ea;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stub-meta{font-family:var(--font-mono);font-size:.72rem;color:#6f7684}.stub-bar-track{height:3px;background:#262b34;border-radius:2px;overflow:hidden;margin-top:.2rem}.stub-bar-fill{height:100%;background:var(--amber-500);border-radius:2px}.auth-panel{background:var(--paper);display:flex;align-items:center;justify-content:center;padding:2rem}.auth-card{width:100%;max-width:380px}.auth-card h2{font-size:1.5rem;margin-bottom:.35rem}.subtitle{color:var(--ink-500);margin-bottom:2rem;font-size:.92rem}.form-group{margin-bottom:1.25rem}.form-group label{display:block;margin-bottom:.4rem;font-weight:500;font-size:.85rem;color:var(--ink-700)}.form-group input{width:100%}.form-group input:disabled{background-color:var(--surface-sunken);cursor:not-allowed}.code-input{width:100%;font-family:var(--font-mono);font-size:1.3rem;letter-spacing:.5em;text-align:center;padding-left:1.1rem}.error-message{background-color:var(--red-100);color:var(--red-600);padding:.65rem .8rem;border-radius:var(--radius-sm);margin-bottom:1rem;font-size:.85rem}.btn-primary{width:100%;background-color:var(--amber-600);color:#fff;padding:.7rem;font-size:.95rem;font-weight:600;border-radius:var(--radius-sm)}.btn-primary:hover:not(:disabled){background-color:#a3641b}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.auth-toggle{text-align:center;margin-top:1.75rem;color:var(--ink-500);font-size:.88rem}.toggle-link{background:none;padding:0;color:var(--amber-600);font-weight:600}.toggle-link:hover{text-decoration:underline}@media (max-width: 860px){.auth-screen{grid-template-columns:1fr}.auth-hero{padding:2.5rem 1.75rem}.auth-hero h1{font-size:1.9rem}.stub-stack{display:none}.hero-copy{margin-bottom:0}.auth-panel{padding:2.5rem 1.75rem}}.board-view{min-height:100vh;background:var(--paper)}.board-nav{height:64px;display:flex;align-items:center;gap:1.25rem;padding:0 2rem;background:var(--ink-900);border-bottom:1px solid #232830}.board-nav h1{font-size:1rem;color:var(--paper);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nav-spacer{flex:1}.btn-back{background:transparent;border:1px solid #333944;color:#c5c9d1;padding:.4rem .8rem .4rem .6rem;display:flex;align-items:center;gap:.4rem;font-size:.85rem}.btn-back:hover{border-color:var(--line-strong);color:var(--paper)}.board-body{max-width:1160px;margin:0 auto;padding:2.5rem 2rem 4rem;display:grid;grid-template-columns:340px 1fr;gap:1.5rem;align-items:start}.input-section{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md);padding:1.5rem;display:flex;flex-direction:column;gap:1.25rem}.drop-zone{border:1px dashed var(--line-strong);border-radius:var(--radius-md);padding:1.5rem;text-align:center;cursor:pointer;transition:border-color .15s var(--ease),background-color .15s var(--ease);display:flex;flex-direction:column;align-items:center;gap:.6rem;color:var(--ink-400);position:relative}.drop-zone:hover,.drop-zone.active{border-color:var(--amber-600);background-color:var(--amber-100);color:var(--amber-600)}.drop-zone p{margin:0;font-size:.88rem}.file-input-label{cursor:pointer;color:var(--amber-600);font-weight:600;text-decoration:underline;font-size:.88rem}.file-input-label input{display:none}.uploading{color:var(--green-600);font-size:.85rem;margin-top:.4rem!important}.input-form{display:flex;flex-direction:column;gap:.6rem}.input-form textarea,.input-form input{width:100%}.btn-add{background-color:var(--amber-600);color:#fff;padding:.6rem;font-weight:600;font-size:.88rem}.btn-add:hover:not(:disabled){background-color:#a3641b}.btn-add:disabled{background-color:var(--surface-sunken);color:var(--ink-400)}.expiry-section{padding:.9rem 1rem;background:var(--surface-sunken);border-radius:var(--radius-sm);border-left:2px solid var(--amber-600)}.expiry-section label{display:block;margin-bottom:.6rem;font-weight:500;color:var(--ink-700);font-size:.82rem}.expiry-input{display:flex;flex-direction:column;gap:.4rem}.expiry-input input{width:100%}.expiry-hint{font-family:var(--font-mono);font-size:.75rem;color:var(--ink-500)}.items-section{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md);padding:1.5rem}.items-section h2{margin-bottom:1.25rem;font-size:1.05rem;display:flex;align-items:baseline;gap:.5rem}.item-count{font-family:var(--font-mono);font-size:.78rem;color:var(--ink-400);font-weight:400}.items-list{display:flex;flex-direction:column;gap:.75rem;max-height:640px;overflow-y:auto}.item-card{border:1px solid var(--line);border-radius:var(--radius-md);padding:1.1rem 1.15rem .9rem;background:var(--paper);transition:border-color .15s var(--ease)}.item-card:hover{border-color:var(--line-strong)}.item-card.expired{background:var(--red-100);border-color:#e6c3bd}.item-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:.65rem}.item-title{display:flex;align-items:center;gap:.65rem;flex:1;min-width:0}.item-type{font-family:var(--font-mono);display:inline-block;border:1px solid var(--line-strong);color:var(--ink-500);padding:.15rem .45rem;border-radius:3px;font-size:.68rem;font-weight:500;letter-spacing:.04em;white-space:nowrap}.item-name{color:var(--ink-700);font-weight:500;font-size:.92rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.btn-icon{background:none;border:none;padding:.35rem;color:var(--ink-400)}.btn-icon:hover{color:var(--red-600)}.item-content{margin:.65rem 0}.item-content p,.item-content a{color:var(--ink-500);font-size:.88rem;word-break:break-all;margin-bottom:.65rem;display:block}.item-content a{color:var(--amber-600)}.file-info{font-family:var(--font-mono);color:var(--ink-500);font-size:.8rem}.btn-copy,.btn-download{display:inline-flex;align-items:center;gap:.4rem;background:transparent;border:1px solid var(--line-strong);color:var(--ink-700);padding:.4rem .8rem;font-size:.8rem}.btn-copy:hover,.btn-download:hover{border-color:var(--amber-600);color:var(--amber-600)}.item-footer{display:flex;flex-direction:column;gap:.4rem;margin-top:.7rem}.item-timer{display:inline-flex;align-items:center;gap:.35rem;font-family:var(--font-mono);font-size:.72rem;color:var(--ink-400)}.item-timer.is-low{color:var(--amber-600)}.item-timer.is-expired{color:var(--red-600)}.decay-track{height:3px;background:var(--surface-sunken);border-radius:2px;overflow:hidden}.decay-fill{height:100%;background:var(--amber-500);border-radius:2px;transition:width .3s var(--ease)}.decay-fill.is-permanent{background:var(--line-strong)}.decay-fill.is-low{background:var(--red-600)}.empty-items{text-align:center;padding:2.5rem 1.5rem;color:var(--ink-500)}.empty-items p:first-child{font-size:1rem;font-weight:600;color:var(--ink-700);margin-bottom:.4rem}.empty-hint{font-size:.88rem}.error-message{grid-column:1 / -1;background-color:var(--red-100);color:var(--red-600);padding:.85rem 1rem;border-radius:var(--radius-sm)}.loading{text-align:center;padding:2rem;color:var(--ink-500);font-size:.9rem}@media (max-width: 1024px){.board-body{grid-template-columns:1fr}}@media (max-width: 768px){.board-nav{padding:0 1.25rem}.board-body{padding:1.5rem 1.25rem 3rem}.input-section,.items-section{padding:1.1rem}.items-list{max-height:none}}.mfa-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#14171c80;display:flex;align-items:center;justify-content:center;padding:1.5rem;z-index:100}.mfa-modal{background:var(--surface);border-radius:var(--radius-lg);border:1px solid var(--line);padding:1.75rem;width:100%;max-width:420px;max-height:90vh;overflow-y:auto}.mfa-modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.25rem}.mfa-modal-header h2{font-size:1.2rem}.mfa-loading{color:var(--ink-500);font-size:.9rem}.mfa-intro{color:var(--ink-500);font-size:.88rem;margin-bottom:1.1rem}.mfa-status-row{display:flex;gap:.75rem;align-items:flex-start;padding:1rem;background:var(--surface-sunken);border-radius:var(--radius-md);margin-bottom:1.25rem}.mfa-status-icon.on{color:var(--green-600);flex-shrink:0;margin-top:.1rem}.mfa-status-title{font-weight:600;font-size:.92rem;color:var(--ink-900);margin-bottom:.2rem}.mfa-status-hint{font-size:.83rem;color:var(--ink-500)}.mfa-option{width:100%;display:flex;align-items:flex-start;gap:.85rem;text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md);padding:.9rem 1rem;margin-bottom:.75rem;color:var(--amber-600)}.mfa-option:hover:not(:disabled){border-color:var(--amber-600);background:var(--amber-100)}.mfa-option-title{font-weight:600;font-size:.9rem;color:var(--ink-900);margin-bottom:.15rem}.mfa-option-hint{font-size:.8rem;color:var(--ink-500)}.btn-danger-outline{width:100%;background:transparent;border:1px solid var(--red-600);color:var(--red-600);padding:.6rem;font-size:.88rem;font-weight:500}.btn-danger-outline:hover{background:var(--red-100)}.mfa-setup{display:flex;flex-direction:column;gap:.9rem}.mfa-setup input{width:100%}.mfa-qr{align-self:center;border:1px solid var(--line);border-radius:var(--radius-sm);padding:.5rem;background:#fff}.mfa-secret{font-size:.8rem;color:var(--ink-500);word-break:break-all}.mfa-secret code{font-family:var(--font-mono);background:var(--surface-sunken);padding:.1rem .35rem;border-radius:3px}.mfa-actions{display:flex;justify-content:flex-end;gap:.5rem}.btn-small.danger{background-color:var(--red-600);color:#fff}.btn-small.danger:hover{background-color:#9a3025}.mfa-recovery-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:1rem;background:var(--surface-sunken);border-radius:var(--radius-md);margin-bottom:1.25rem}.recovery-codes-grid{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;background:var(--surface-sunken);border-radius:var(--radius-md);padding:1rem}.recovery-code{font-family:var(--font-mono);font-size:.85rem;text-align:center;padding:.4rem;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm)}.mfa-setup .btn-small.secondary{display:inline-flex;align-items:center;gap:.4rem;align-self:flex-start}.dashboard{min-height:100vh;background:var(--paper)}.dashboard-nav{height:64px;display:flex;align-items:center;justify-content:space-between;padding:0 2rem;background:var(--ink-900);border-bottom:1px solid #232830}.wordmark-dark{font-family:var(--font-display);font-weight:600;font-size:1.05rem;color:var(--paper);letter-spacing:-.01em}.nav-actions{display:flex;align-items:center;gap:.6rem}.btn-nav-secondary{background:transparent;border:1px solid #333944;color:#c5c9d1;display:flex;align-items:center;gap:.45rem;padding:.45rem .85rem;font-size:.85rem}.btn-nav-secondary:hover{border-color:var(--amber-500);color:var(--amber-500)}.btn-logout{background:transparent;border:1px solid #333944;color:#c5c9d1;display:flex;align-items:center;gap:.45rem;padding:.45rem .85rem;font-size:.85rem}.btn-logout:hover{border-color:var(--red-600);color:#f0a89f}.dashboard-content{max-width:1160px;margin:0 auto;padding:2.75rem 2rem 4rem}.dashboard-heading{margin-bottom:2rem}.dashboard-heading h1{font-size:1.65rem;margin-bottom:.4rem}.header-subtitle{color:var(--ink-500);font-size:.92rem}.boards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:1rem}.board-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md);padding:1.25rem;transition:border-color .15s var(--ease),transform .15s var(--ease);cursor:pointer;display:flex;flex-direction:column;min-height:128px}.board-card:hover{border-color:var(--amber-600);transform:translateY(-2px)}.board-card h3{margin-bottom:.35rem;font-size:1.02rem;font-weight:600;word-break:break-word}.board-date{font-family:var(--font-mono);color:var(--ink-500);font-size:.78rem;margin-bottom:1rem;flex-grow:1}.btn-delete{background:transparent;border:1px solid var(--line);color:var(--ink-500);padding:.4rem .75rem;font-size:.8rem;align-self:flex-start}.btn-delete:hover{border-color:var(--red-600);color:var(--red-600);background:var(--red-100)}.new-board-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.6rem;color:var(--ink-400);background:transparent;border:1px dashed var(--line-strong)}.new-board-btn:hover{color:var(--amber-600);border-color:var(--amber-600);background:var(--amber-100)}.new-board-form{background:var(--surface);border:1px solid var(--amber-600);border-radius:var(--radius-md);padding:1.25rem}.new-board-form input{width:100%;margin-bottom:1rem}.form-buttons{display:flex;gap:.5rem}.btn-small{padding:.45rem .9rem;font-size:.85rem}.btn-small.primary{background-color:var(--amber-600);color:#fff}.btn-small.primary:hover{background-color:#a3641b}.btn-small.secondary{background-color:transparent;border:1px solid var(--line);color:var(--ink-700)}.btn-small.secondary:hover{border-color:var(--line-strong)}.empty-state{grid-column:1 / -1;text-align:center;padding:3.5rem 2rem;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md);color:var(--ink-500)}.empty-state p:first-child{font-size:1.05rem;font-weight:600;color:var(--ink-700);margin-bottom:.4rem}.empty-hint{font-size:.9rem}.error-message{background-color:var(--red-100);color:var(--red-600);padding:.85rem 1rem;border-radius:var(--radius-sm);margin-bottom:1.5rem;font-size:.9rem}.loading{text-align:center;padding:3rem;color:var(--ink-500);font-size:.95rem}@media (max-width: 768px){.dashboard-nav{padding:0 1.25rem}.dashboard-content{padding:1.75rem 1.25rem 3rem}.boards-grid{grid-template-columns:1fr}.dashboard-heading h1{font-size:1.4rem}}.loading-screen{display:flex;align-items:center;justify-content:center;height:100vh;gap:.6rem;color:var(--ink-500);font-family:var(--font-mono);font-size:.85rem}.loading-screen .dot{width:5px;height:5px;border-radius:50%;background:var(--amber-600);animation:pulse 1.1s ease-in-out infinite}.loading-screen .dot:nth-child(2){animation-delay:.15s}.loading-screen .dot:nth-child(3){animation-delay:.3s}@keyframes pulse{0%,80%,to{opacity:.25}40%{opacity:1}}@keyframes fadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.fade-in{animation:fadeIn .25s var(--ease)}:root{--paper: #f5f6f8;--surface: #ffffff;--surface-sunken: #edeff2;--line: #e1e4e9;--line-strong: #c7cbd3;--ink-900: #14171c;--ink-700: #3b4048;--ink-500: #6b7280;--ink-400: #9aa1ac;--amber-600: #b9711f;--amber-500: #cf8a35;--amber-100: #f6e8d3;--red-600: #b8392c;--red-100: #f7e1de;--green-600: #3f7d5c;--font-display: "Instrument Sans", -apple-system, BlinkMacSystemFont, sans-serif;--font-body: "IBM Plex Sans", -apple-system, BlinkMacSystemFont, sans-serif;--font-mono: "IBM Plex Mono", "SF Mono", Consolas, monospace;--radius-sm: 5px;--radius-md: 8px;--radius-lg: 12px;--ease: cubic-bezier(.2, .7, .3, 1)}*{margin:0;padding:0;box-sizing:border-box}html,body,#root{height:100%;width:100%}body{font-family:var(--font-body);background:var(--paper);color:var(--ink-900);line-height:1.55;min-height:100vh;-webkit-font-smoothing:antialiased}h1,h2,h3{font-family:var(--font-display);font-weight:600;letter-spacing:-.01em;color:var(--ink-900)}button{cursor:pointer;border:none;border-radius:var(--radius-sm);font-weight:500;font-size:.9rem;font-family:inherit;padding:.5rem 1rem;transition:background-color .15s var(--ease),border-color .15s var(--ease),color .15s var(--ease),transform .1s var(--ease)}button:active{transform:translateY(1px)}button:disabled{cursor:not-allowed}input,textarea{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);padding:.55rem .75rem;font-size:.9rem;font-family:inherit;color:var(--ink-900);transition:border-color .15s var(--ease),box-shadow .15s var(--ease)}input::placeholder,textarea::placeholder{color:var(--ink-400)}input:focus,textarea:focus{outline:none;border-color:var(--amber-600);box-shadow:0 0 0 3px var(--amber-100)}textarea{resize:vertical;min-height:100px}a{color:var(--amber-600);text-decoration:none}a:hover{text-decoration:underline}:focus-visible{outline:2px solid var(--amber-600);outline-offset:2px}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.001ms!important;transition-duration:.001ms!important}}
