*{box-sizing:border-box;margin:0;padding:0}body{font-family:system-ui,-apple-system,sans-serif;background:#0f0f12;color:#e8e8ed;line-height:1.5}a{color:#8ab4ff;text-decoration:none}a:hover{text-decoration:underline}.layout{display:flex;min-height:100vh}.sidebar{width:220px;background:#1a1a22;padding:1.5rem 1rem;border-right:1px solid #2a2a35}.sidebar h1{font-size:1rem;margin-bottom:1.5rem;color:#fff}.sidebar nav{display:flex;flex-direction:column;gap:.25rem}.sidebar a{padding:.5rem .75rem;border-radius:6px;color:#aaa}.sidebar a.active,.sidebar a:hover{background:#2a2a35;color:#fff;text-decoration:none}.main{flex:1;padding:2rem;max-width:1100px}.card{background:#1a1a22;border:1px solid #2a2a35;border-radius:8px;padding:1.25rem;margin-bottom:1rem}button,.btn{background:#3b5bdb;color:#fff;border:none;padding:.5rem 1rem;border-radius:6px;cursor:pointer;font-size:.875rem}button:hover{background:#4c6ef5}button.danger{background:#c92a2a}button.secondary{background:#2a2a35}input,textarea,select{background:#0f0f12;border:1px solid #2a2a35;color:#e8e8ed;padding:.5rem .75rem;border-radius:6px;width:100%;margin-bottom:.75rem}label{display:block;font-size:.8rem;color:#888;margin-bottom:.25rem}.form-group{margin-bottom:1rem}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:.6rem;border-bottom:1px solid #2a2a35}th{color:#888;font-size:.75rem;text-transform:uppercase}.tabs{display:flex;gap:.5rem;margin-bottom:1rem;flex-wrap:wrap}.tab{padding:.4rem .8rem;background:#2a2a35;border-radius:6px;cursor:pointer;border:none;color:#aaa}.tab.active{background:#3b5bdb;color:#fff}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center}.login-box{width:360px}.error{color:#ff6b6b;font-size:.875rem;margin-bottom:.75rem}.badge{font-size:.7rem;padding:.15rem .4rem;border-radius:4px;background:#2a2a35}.badge.ai{background:#7048e8}.badge.status-upcoming{background:#1c7ed6}.badge.status-due{background:#f59f00;color:#111}.badge.status-done{background:#2f9e44}.badge.status-skipped{background:#495057}.detail-grid{display:grid;grid-template-columns:160px 1fr;gap:.4rem 1rem;font-size:.9rem}.detail-grid dt{color:#888}.detail-grid dd{margin:0}.quote-item{display:flex;gap:.75rem;align-items:center;margin-bottom:.5rem}.quote-item input{flex:1;margin:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000a6;display:flex;align-items:center;justify-content:center;padding:1.5rem;z-index:50}.modal{background:#1a1a22;border:1px solid #2a2a35;border-radius:10px;padding:1.25rem 1.35rem;width:min(640px,100%);max-height:90vh;overflow:auto;box-shadow:0 16px 48px #00000073}button:disabled{opacity:.55;cursor:not-allowed}.swipe-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:flex;align-items:center;justify-content:center;padding:1.25rem;background:radial-gradient(ellipse 80% 60% at 50% 20%,rgba(180,72,48,.22),transparent 55%),radial-gradient(ellipse 70% 50% at 80% 90%,rgba(40,55,70,.45),transparent 50%),#060609e0;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);animation:swipe-fade-in .28s ease-out}@keyframes swipe-fade-in{0%{opacity:0}to{opacity:1}}.swipe-stage{width:min(440px,100%);display:flex;flex-direction:column;gap:1rem;animation:swipe-rise .4s cubic-bezier(.22,1,.36,1)}@keyframes swipe-rise{0%{opacity:0;transform:translateY(18px) scale(.98)}to{opacity:1;transform:none}}.swipe-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.swipe-eyebrow{font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:#c4785a;margin-bottom:.2rem}.swipe-header h2{font-family:Georgia,Times New Roman,serif;font-weight:600;font-size:1.45rem;color:#f2ebe3;letter-spacing:-.02em}.swipe-close{background:transparent;border:1px solid rgba(242,235,227,.18);color:#b8b0a6;padding:.4rem .75rem;border-radius:999px;font-size:.8rem}.swipe-close:hover:not(:disabled){background:#f2ebe314;color:#f2ebe3}.swipe-progress{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:.75rem;font-size:.8rem;color:#9a9288;font-variant-numeric:tabular-nums}.swipe-progress em{font-style:normal;opacity:.5;margin:0 .15rem}.swipe-progress-track{height:3px;border-radius:2px;background:#f2ebe31f;overflow:hidden}.swipe-progress-fill{height:100%;background:linear-gradient(90deg,#c4785a,#e8a07a);border-radius:2px;transition:width .28s ease}.swipe-kept-count{color:#e8a07a}.swipe-deck{position:relative;height:min(52vh,420px);touch-action:none;-webkit-user-select:none;user-select:none}.swipe-card{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;justify-content:center;padding:2rem 1.75rem 1.5rem;border-radius:22px;background:linear-gradient(165deg,#f7f1e8,#ebe2d4 55%,#e4d9c8);color:#1c1814;box-shadow:0 2px #ffffff8c inset,0 24px 48px #00000073,0 4px 12px #00000040;border:1px solid rgba(28,24,20,.08)}.swipe-card-next{transform:scale(.94) translateY(10px);opacity:.55;filter:brightness(.92);pointer-events:none}.swipe-card-active{cursor:grab;transition:box-shadow .2s ease;will-change:transform}.swipe-card-active:not(.is-dragging):not([class*=is-exit]){transition:transform .35s cubic-bezier(.22,1,.36,1),box-shadow .2s ease}.swipe-card-active.is-dragging{cursor:grabbing;box-shadow:0 2px #ffffff8c inset,0 32px 64px #0000008c;transition:none}.swipe-card-active.is-exit-left,.swipe-card-active.is-exit-right{transition:transform .28s cubic-bezier(.4,0,1,1);pointer-events:none}.swipe-tone{align-self:flex-start;font-size:.65rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;padding:.28rem .55rem;border-radius:4px;margin-bottom:1.25rem;background:#1c181414;color:#5c534a}.swipe-tone.wild{background:#b4483024;color:#9a3d28}.swipe-tone.conservative{background:#374b5a1f;color:#3d5566}.swipe-card-text{font-family:Georgia,Times New Roman,serif;font-size:clamp(1.35rem,4.2vw,1.75rem);line-height:1.35;letter-spacing:-.015em;color:#1c1814;flex:1;display:flex;align-items:center}.swipe-hint{margin-top:1.25rem;font-size:.75rem;color:#8a8176;text-align:center}.swipe-stamp{position:absolute;top:1.5rem;padding:.35rem .7rem;font-size:1.35rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;border:3px solid;border-radius:6px;pointer-events:none;transform:rotate(-12deg)}.swipe-stamp.keep{left:1.25rem;color:#2f9e44;border-color:#2f9e44;transform:rotate(-14deg)}.swipe-stamp.pass{right:1.25rem;color:#c92a2a;border-color:#c92a2a;transform:rotate(14deg)}.swipe-actions{display:flex;justify-content:center;gap:1.5rem;padding-top:.25rem}.swipe-btn{width:72px;height:72px;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.15rem;font-size:.65rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;border:2px solid;background:#12100ebf;box-shadow:0 8px 24px #00000059;transition:transform .15s ease,background .15s ease}.swipe-btn span{font-size:1.35rem;line-height:1;font-weight:500}.swipe-btn.pass{color:#ff8787;border-color:#ff878773}.swipe-btn.keep{color:#8ce99a;border-color:#8ce99a73}.swipe-btn:hover:not(:disabled){transform:scale(1.06);background:#1c1814f2}.swipe-btn:active:not(:disabled){transform:scale(.96)}.swipe-footer-note{text-align:center;font-size:.8rem;color:#7a736a}.swipe-done{background:linear-gradient(165deg,#1e1a17,#151310);border:1px solid rgba(242,235,227,.1);border-radius:22px;padding:1.75rem 1.5rem;box-shadow:0 24px 48px #0006;animation:swipe-rise .4s cubic-bezier(.22,1,.36,1)}.swipe-done h3{font-family:Georgia,Times New Roman,serif;font-size:1.65rem;color:#f2ebe3;margin-bottom:.5rem;letter-spacing:-.02em}.swipe-done-sub{color:#9a9288;font-size:.9rem;margin-bottom:1.25rem}.swipe-kept-list{list-style:none;display:flex;flex-direction:column;gap:.55rem;max-height:36vh;overflow:auto;margin-bottom:1.25rem;padding-right:.25rem}.swipe-kept-list li{display:flex;flex-direction:column;align-items:flex-start;gap:.4rem;padding:.75rem .85rem;background:#f2ebe30a;border:1px solid rgba(242,235,227,.08);border-radius:10px;font-size:.9rem;color:#e8e0d6;line-height:1.4}.swipe-kept-list .swipe-tone{margin-bottom:0}.swipe-done-actions{display:flex;gap:.6rem;justify-content:flex-end;flex-wrap:wrap}@media(max-width:480px){.swipe-deck{height:min(48vh,360px)}.swipe-btn{width:64px;height:64px}}
