:root{--paper:#f6f4ee;--paper-warm:#efece2;--card:#fffdf8;--ink:#1c2b26;--ink-soft:#45544e;--ink-faint:#7d8a83;--line:#e0dbcc;--line-strong:#cec7b2;--brass:#a8842f;--brass-bright:#c29a45;--brass-soft:#f3ead3;--green-ok:#2e7d54;--red-err:#b3402e;--new-bg:#fdf3d9;--new-border:#e4c67a;--shadow-card:0 1px 2px #1c2b260f, 0 8px 24px -12px #1c2b262e;--radius:14px;--font-display:"Fraunces", Georgia, serif;--font-body:"Archivo", "Helvetica Neue", sans-serif}*{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased}body{font-family:var(--font-body);background:radial-gradient(1100px 500px at 80% -10%, #c29a4517, transparent 60%), var(--paper);color:var(--ink);min-height:100vh;font-size:15px;line-height:1.5}button{cursor:pointer;font-family:inherit}input,select{font-family:inherit}a{color:var(--brass)}.shell{max-width:1180px;margin:0 auto;padding:0 28px 80px}.topbar{border-bottom:1px solid var(--line-strong);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:34px;padding:22px 0 18px;display:flex}.brand{align-items:center;gap:14px;display:flex}.brand-mark{background:var(--ink);border-radius:10px;flex-shrink:0;place-items:center;width:42px;height:42px;display:grid}.brand-mark svg{width:24px;height:24px}.brand h1{font-family:var(--font-display);letter-spacing:-.01em;font-size:22px;font-weight:600;line-height:1.1}.brand small{font-family:var(--font-body);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint);margin-top:2px;font-size:11px;font-weight:500;display:block}.topbar-actions{align-items:center;gap:12px;display:flex}.btn{white-space:nowrap;border:1px solid #0000;border-radius:10px;justify-content:center;align-items:center;gap:9px;padding:10px 18px;font-size:14px;font-weight:600;transition:transform .12s,box-shadow .12s,background .12s;display:inline-flex}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.55;cursor:not-allowed;transform:none}.btn-primary{background:var(--ink);color:#fdfcf7}.btn-primary:hover:not(:disabled){background:#2a3d36}.btn-brass{background:linear-gradient(160deg, var(--brass-bright), var(--brass));color:#fffdf5;letter-spacing:.01em;border-radius:12px;padding:13px 26px;font-size:15px;box-shadow:0 2px 4px #a8842f40,0 10px 24px -8px #a8842f73}.btn-brass:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 2px 4px #a8842f4d,0 14px 30px -8px #a8842f8c}.btn-ghost{color:var(--ink-soft);border-color:var(--line-strong);background:0 0}.btn-ghost:hover:not(:disabled){background:var(--paper-warm);color:var(--ink)}.btn-danger-ghost{color:var(--ink-faint);background:0 0;border:none;border-radius:8px;padding:6px 10px;font-size:13px;font-weight:500}.btn-danger-ghost:hover{color:var(--red-err);background:#b3402e12}.btn-spinner{border:2px solid #fffdf566;border-top-color:#fffdf5;border-radius:50%;width:16px;height:16px;animation:.7s linear infinite btn-spin}@keyframes btn-spin{to{transform:rotate(360deg)}}.top-loader{background:var(--brass-soft);z-index:1000;height:3px;position:fixed;top:0;left:0;right:0;overflow:hidden}.top-loader:before{content:"";background:linear-gradient(90deg, transparent, var(--brass-bright), var(--brass), transparent);border-radius:999px;width:40%;height:100%;animation:1.1s ease-in-out infinite top-loader-slide;position:absolute;top:0}@keyframes top-loader-slide{0%{left:-40%}to{left:100%}}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-card)}.card-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:12px;padding:20px 24px 0;display:flex}.card-head h2{font-family:var(--font-display);letter-spacing:-.01em;font-size:19px;font-weight:600}.card-head .hint{color:var(--ink-faint);font-size:13px}.card-body{padding:18px 24px 22px}.grid{grid-template-columns:1.6fr 1fr;align-items:start;gap:22px;display:grid}.grid>.col{gap:22px;min-width:0;display:grid}.card{min-width:0}@media (width<=900px){.grid{grid-template-columns:1fr}}.dashboard{gap:22px;display:grid}.scan-status-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;margin-bottom:12px;display:flex}.scan-step{color:var(--ink-soft);min-height:20px;font-size:13.5px}.scan-meta{color:var(--ink-faint);font-size:12.5px}.progress-track{background:var(--paper-warm);border:1px solid var(--line);border-radius:999px;height:12px;position:relative;overflow:hidden}.progress-fill{background:linear-gradient(90deg, var(--brass), var(--brass-bright));border-radius:999px;height:100%;transition:width .6s;position:relative;overflow:hidden}.progress-fill.animated:after{content:"";background:linear-gradient(110deg,#0000 30%,#ffffff59 50%,#0000 70%);animation:1.6s infinite shimmer;position:absolute;inset:0}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}.progress-label{font-variant-numeric:tabular-nums;text-align:right;min-width:48px;font-size:15px;font-weight:700}.progress-auto-tag{letter-spacing:.05em;text-transform:uppercase;color:var(--brass);background:var(--brass-soft);border:1px solid var(--new-border);white-space:nowrap;border-radius:999px;flex-shrink:0;align-items:center;gap:5px;padding:4px 10px;font-size:11px;font-weight:700;display:inline-flex}.progress-auto-tag svg{flex-shrink:0}.scan-log{color:var(--ink-soft);background:var(--paper-warm);border:1px solid var(--line);white-space:pre-wrap;border-radius:10px;max-height:130px;margin-top:14px;padding:10px 14px;font-size:12.5px;overflow-y:auto}.badge-status{letter-spacing:.06em;text-transform:uppercase;border-radius:999px;align-items:center;gap:7px;padding:4px 12px;font-size:12px;font-weight:600;display:inline-flex}.badge-status .dot{background:currentColor;border-radius:50%;width:7px;height:7px}.badge-status.running{color:var(--brass);background:var(--brass-soft)}.badge-status.running .dot{animation:1.2s infinite pulse}.badge-status.done{color:var(--green-ok);background:#2e7d541a}.badge-status.error{color:var(--red-err);background:#b3402e17}.badge-status.idle{color:var(--ink-faint);background:var(--paper-warm)}@keyframes pulse{50%{opacity:.3}}.scan-badges{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.live-pill{letter-spacing:.06em;text-transform:uppercase;color:var(--green-ok);background:#2e7d541a;border-radius:999px;align-items:center;gap:6px;padding:4px 10px;font-size:11px;font-weight:700;display:inline-flex}.live-pill .dot{background:currentColor;border-radius:50%;width:7px;height:7px;animation:1.4s infinite pulse}.auto-banner{color:#7a5f16;background:var(--new-bg);border:1px solid var(--new-border);border-radius:11px;align-items:center;gap:10px;margin-bottom:14px;padding:11px 14px;font-size:13.5px;display:flex}.auto-banner svg{color:var(--brass);flex-shrink:0}.agency-list{grid-template-columns:minmax(0,1fr);gap:10px;display:grid}.agency-row{border:1px solid var(--line);background:var(--card);border-radius:12px;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:14px;padding:13px 16px;transition:border-color .12s;display:grid}.agency-row:hover{border-color:var(--line-strong)}.agency-info{min-width:0}.agency-name{font-size:14.5px;font-weight:600}.agency-url{color:var(--ink-faint);text-overflow:ellipsis;white-space:nowrap;font-size:12.5px;text-decoration:none;display:block;overflow:hidden}.agency-url:hover{color:var(--brass)}.agency-stats{flex-shrink:0;align-items:center;gap:8px;display:flex}.chip{background:var(--paper-warm);color:var(--ink-soft);border:1px solid var(--line);white-space:nowrap;border-radius:999px;padding:3px 10px;font-size:12px;font-weight:600}.chip.new{background:var(--new-bg);border-color:var(--new-border);color:#8a6414}.soon-panel{border-top:1px dashed var(--line-strong);margin-top:16px;padding-top:16px}.soon-head{flex-wrap:wrap;align-items:center;gap:9px;display:flex}.soon-head svg{color:var(--brass);flex-shrink:0}.soon-title{font-size:14.5px;font-weight:600}.soon-badge{letter-spacing:.08em;text-transform:uppercase;color:var(--brass);background:var(--brass-soft);border:1px solid var(--new-border);border-radius:999px;padding:3px 10px;font-size:10.5px;font-weight:700}.soon-text{color:var(--ink-faint);margin-top:8px;font-size:12.5px;line-height:1.55}.input{border:1px solid var(--line-strong);color:var(--ink);background:#fff;border-radius:10px;width:100%;min-width:0;padding:10px 13px;font-size:14px;transition:border-color .12s,box-shadow .12s}.input:focus{border-color:var(--brass);outline:none;box-shadow:0 0 0 3px #c29a452e}.schedule-row{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.time-input{border:1px solid var(--line-strong);color:var(--ink);font-variant-numeric:tabular-nums;background:#fff;border-radius:10px;padding:9px 12px;font-size:15px;font-weight:600}.switch{flex-shrink:0;width:46px;height:26px;position:relative}.switch input{opacity:0;cursor:pointer;z-index:1;width:100%;height:100%;position:absolute}.switch .track{background:var(--line-strong);border-radius:999px;transition:background .15s;position:absolute;inset:0}.switch .track:after{content:"";background:#fff;border-radius:50%;width:20px;height:20px;transition:transform .15s;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #00000040}.switch input:checked+.track{background:var(--green-ok)}.switch input:checked+.track:after{transform:translate(20px)}.schedule-note{color:var(--ink-faint);margin-top:10px;font-size:12.5px}.schedule-status{background:#2e7d5412;border:1px solid #2e7d5438;border-radius:11px;margin-top:14px;padding:12px 14px}.schedule-status-row{color:var(--ink-soft);align-items:center;gap:9px;font-size:13.5px;display:flex}.schedule-status-row strong{color:var(--green-ok)}.schedule-status-dot{background:var(--green-ok);border-radius:50%;flex-shrink:0;width:8px;height:8px;animation:1.6s infinite pulse}.schedule-status-sub{color:var(--ink-faint);margin-top:6px;padding-left:17px;font-size:12px}.table-controls{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.table-wrap{border:1px solid var(--line);border-radius:12px;max-height:640px;overflow:auto}table.listings{border-collapse:collapse;width:100%;min-width:760px;font-size:13.5px}table.listings th{text-align:left;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint);background:var(--paper-warm);border-bottom:1px solid var(--line);white-space:nowrap;z-index:1;padding:11px 14px;font-size:11px;font-weight:600;position:sticky;top:0}table.listings td{border-bottom:1px solid var(--line);vertical-align:middle;padding:10px 14px}table.listings tr:last-child td{border-bottom:none}table.listings tr.is-new td{background:var(--new-bg)}.td-agency{font-weight:600}.td-price{font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:600}.th-photo,.td-photo{width:90px}.td-photo{padding:8px 10px}.thumb{background:var(--paper-warm);border:1px solid var(--line);border-radius:9px;flex-shrink:0;width:78px;height:58px;transition:transform .12s,box-shadow .12s,border-color .12s;display:block;overflow:hidden}.thumb:hover{border-color:var(--line-strong);transform:translateY(-1px);box-shadow:0 6px 16px -8px #1c2b2666}.thumb img{object-fit:cover;width:100%;height:100%;display:block}.thumb-empty{width:100%;height:100%;color:var(--line-strong);place-items:center;display:grid}.tag-new{letter-spacing:.08em;color:#8a6414;border:1px solid var(--new-border);vertical-align:1px;background:#fff;border-radius:6px;margin-left:8px;padding:2px 7px;font-size:10.5px;font-weight:700;display:inline-block}.link-open{color:var(--brass);white-space:nowrap;font-size:13px;font-weight:600;text-decoration:none}.link-open:hover{text-decoration:underline}.empty-note{text-align:center;color:var(--ink-faint);padding:30px 10px;font-size:14px}@media (width<=900px){.table-wrap{border:none;border-radius:0;max-height:none;overflow:visible}table.listings{width:100%;min-width:0}table.listings thead{display:none}table.listings,table.listings tbody{display:block}table.listings tr{background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow-card);border-radius:14px;flex-direction:column;min-height:108px;margin-bottom:14px;padding:15px 16px 15px 112px;display:flex;position:relative}table.listings tr.is-new,table.listings tr.is-new td{background:var(--new-bg)}table.listings tr.is-new{border-color:var(--new-border)}table.listings tr:last-child td{border-bottom:none}table.listings td{border:none;align-items:baseline;gap:10px;padding:3px 0;font-size:14px;display:flex}table.listings td:before{content:attr(data-label);color:var(--ink-faint);letter-spacing:.06em;text-transform:uppercase;flex:0 0 78px;font-size:10.5px;font-weight:700;line-height:1.7}table.listings td.td-photo{order:-3;width:84px;padding:0;display:block;position:absolute;top:15px;left:15px}table.listings td.td-photo:before{display:none}table.listings td.td-photo .thumb{border-radius:11px;width:84px;height:84px}table.listings td.td-desc{font-family:var(--font-display);color:var(--ink);border-bottom:1px dashed var(--line);order:-2;margin-bottom:6px;padding-bottom:8px;font-size:16.5px;font-weight:600;line-height:1.25;display:block}table.listings td.td-desc:before{display:none}table.listings td.td-agency{color:var(--ink-soft);order:-1;font-size:12.5px}.td-price{color:var(--ink);font-size:15.5px}table.listings td.td-link{margin-top:10px;padding-top:0}table.listings td.td-link:before{display:none}table.listings td.td-link .link-open{background:var(--ink);color:#fdfcf7;border-radius:10px;align-items:center;padding:9px 18px;font-size:14px;display:inline-flex}table.listings td.td-link .link-open:hover{background:#2a3d36;text-decoration:none}}@media (width<=460px){table.listings tr{padding:14px}table.listings td.td-photo{order:-3;width:100%;margin-bottom:12px;position:static}table.listings td.td-photo .thumb{border-radius:12px;width:100%;height:160px}}.login-scene{background:radial-gradient(900px 480px at 15% 0%, #c29a451f, transparent 55%), radial-gradient(700px 500px at 100% 100%, #1c2b2614, transparent 60%), var(--paper);place-items:center;min-height:100vh;padding:24px;display:grid}.login-card{background:var(--card);border:1px solid var(--line);border-radius:18px;width:100%;max-width:400px;padding:40px 38px 36px;animation:.5s cubic-bezier(.2,.7,.3,1) rise;box-shadow:0 2px 6px #1c2b2612,0 30px 60px -30px #1c2b2659}@keyframes rise{0%{opacity:0;transform:translateY(14px)}}.login-card .brand-mark{border-radius:13px;width:52px;height:52px;margin-bottom:20px}.login-card .brand-mark svg{width:30px;height:30px}.login-card h1{font-family:var(--font-display);letter-spacing:-.01em;font-size:26px;font-weight:600;line-height:1.15}.login-card .subtitle{color:var(--ink-faint);margin:8px 0 26px;font-size:13.5px}.login-card label{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);margin:16px 0 6px;font-size:12px;font-weight:600;display:block}.login-card .btn{width:100%;margin-top:24px;padding:12px;font-size:15px}.form-error{color:var(--red-err);background:#b3402e12;border:1px solid #b3402e33;border-radius:9px;margin-top:14px;padding:9px 13px;font-size:13.5px}.toast{background:var(--ink);color:#fdfcf7;z-index:50;border-radius:11px;padding:11px 20px;font-size:14px;animation:.25s rise;position:fixed;bottom:24px;left:50%;transform:translate(-50%);box-shadow:0 10px 30px -8px #1c2b2680}.toast.error{background:var(--red-err)}.visually-hidden{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}
