/* The door's own pages (login, the bar desk, error pages). Everything shared
   with the apps lives in dd-theme.css; this file only adds what the door has
   and nothing else does.                                                    */

/* ---- login ---- */
.center{min-height:calc(100vh - var(--dd-top-h));display:flex;align-items:center;justify-content:center;padding:24px 16px}
.center.full{min-height:100vh}
.login{width:100%;max-width:420px;text-align:center;padding:30px 28px}
.login img{width:150px;height:auto;display:block;margin:0 auto 14px}
.login h1{font-size:22px;margin-bottom:4px}
.login .dd-field{text-align:left;margin-top:14px}
.login .dd-field input{font-size:16px;padding:12px 14px}
.login .dd-btn{margin-top:18px}
.login .foot{margin:16px 0 0;color:var(--dd-faint);font-size:12.5px}

/* ---- the bar desk ---- */
.desk{padding-top:18px}
.desk .dd-hero{margin-bottom:16px}
.desk .dd-hero .sub{color:var(--dd-muted);margin:2px 0 14px;font-size:14px}
.desk .find{max-width:720px}
.desk .find input{font-size:17px;padding:15px 16px 15px 44px;border-radius:18px;background:rgba(6,4,10,.5);border-color:rgba(255,255,255,.18)}
.desk .find input:focus{border-color:var(--dd-amber);box-shadow:0 0 0 4px rgba(255,179,71,.22)}
.desk .quick{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.desk .quick .dd-btn svg{width:16px;height:16px}
.desk .stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}
.desk .stats .dd-stat{color:var(--dd-text);text-decoration:none;transition:.15s}
.desk .stats .dd-stat:hover{border-color:var(--dd-line-2);transform:translateY(-2px)}
.desk .stats .dd-stat small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.desk .cols{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);gap:16px;margin-bottom:22px}
.desk .col{display:flex;flex-direction:column;gap:16px;min-width:0}
.desk .dd-card .hd h2{margin:0}
.desk .dd-empty.quiet{border-style:solid;background:linear-gradient(160deg,rgba(52,211,166,.10),transparent 70%);border-color:rgba(52,211,166,.25)}
.desk .calls{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}
.desk .call{display:inline-flex;flex-direction:column;padding:10px 14px;border-radius:14px;background:var(--dd-neg-bg);border:1px solid rgba(255,92,122,.5);font-weight:800;color:#ffd3db;animation:dd-pulse 1.6s infinite}
.desk .call small{font-weight:600;font-size:11.5px;color:var(--dd-muted)}
.desk .tickets{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px;margin-bottom:6px}
.desk .ticket{display:grid;grid-template-columns:1fr auto;gap:2px 8px;padding:11px 13px;border-radius:14px;border:1px solid var(--dd-line);background:var(--dd-surface);color:var(--dd-text);text-decoration:none;transition:.12s}
.desk .ticket:hover{background:var(--dd-surface-2);border-color:var(--dd-line-2)}
.desk .ticket.new{border-color:var(--dd-accent-line);background:linear-gradient(160deg,rgba(255,106,61,.16),rgba(255,106,61,.03))}
.desk .ticket b{font-size:14px}.desk .ticket .when{color:var(--dd-muted);font-size:11.5px;text-align:right}
.desk .ticket .items{grid-column:1 / -1;color:var(--dd-muted);font-size:12.5px;line-height:1.35}
.desk .ticket .dd-badge{grid-column:1 / -1;justify-self:start;margin-top:4px}
.desk .timeline{display:flex;flex-direction:column;gap:6px}
.desk .bk{display:grid;grid-template-columns:64px 1fr auto;gap:10px;align-items:center;padding:9px 12px;border-radius:13px;border:1px solid var(--dd-line);background:var(--dd-surface);color:var(--dd-text);text-decoration:none;transition:.12s}
.desk .bk:hover{background:var(--dd-surface-2)}
.desk .bk.past{opacity:.5}.desk .bk.on{border-color:rgba(52,211,166,.45);background:linear-gradient(90deg,rgba(52,211,166,.12),transparent 60%)}.desk .bk.overdue{border-color:rgba(255,92,122,.5)}
.desk .bk .time{font-weight:800;font-variant-numeric:tabular-nums;font-size:15px;line-height:1.1}.desk .bk .time small{display:block;font-weight:600;color:var(--dd-faint);font-size:10.5px}
.desk .bk .who b{display:block;font-size:13.5px}.desk .bk .who span{font-size:12px;color:var(--dd-muted)}
.desk .todos{display:flex;flex-direction:column;gap:6px}
.desk .todo{display:flex;align-items:center;gap:10px;padding:9px 11px;border-radius:13px;border:1px solid var(--dd-line);background:var(--dd-surface);color:var(--dd-text);text-decoration:none;transition:.12s}
.desk .todo:hover{background:var(--dd-surface-2)}
.desk .todo .ico{width:32px;height:32px;border-radius:10px;display:flex;align-items:center;justify-content:center;background:var(--dd-surface-2);color:var(--dd-muted);flex:0 0 auto}
.desk .todo .ico svg{width:16px;height:16px}
.desk .todo.neg .ico{background:var(--dd-neg-bg);color:#ffb3c2}.desk .todo.warn .ico{background:var(--dd-warn-bg);color:#ffd79b}.desk .todo.info .ico{background:var(--dd-info-bg);color:#b9caff}.desk .todo.pos .ico{background:var(--dd-pos-bg);color:#8ff0cf}
.desk .todo b{display:block;font-size:13.5px;line-height:1.2}.desk .todo small{color:var(--dd-muted);font-size:11.5px}
.desk .pts{display:flex;flex-wrap:wrap;gap:6px}
.desk .pt{display:inline-flex;flex-direction:column;padding:7px 11px;border-radius:12px;background:var(--dd-pos-bg);border:1px solid rgba(52,211,166,.3)}
.desk .pt b{font-size:13px}.desk .pt small{font-size:11px;color:var(--dd-muted)}
.desk .map{margin-bottom:10px}
.desk .foot{margin:0}
@media (max-width:1000px){.desk .stats{grid-template-columns:repeat(2,minmax(0,1fr))}.desk .cols{grid-template-columns:1fr}}
@media (max-width:520px){.desk .stats{grid-template-columns:1fr 1fr;gap:8px}.desk .dd-stat b{font-size:24px}.desk .quick .dd-btn{flex:1 1 45%}.desk .dd-hero{padding:18px 16px}.desk .dd-hero .pips{display:none}}

/* ---- error and notice pages ---- */
.notice{max-width:520px;padding:26px 28px}
.notice h1{font-size:22px}
.notice .dd-btn{margin-top:8px}
