@import url(https://fonts.googleapis.com/css2?family=Fraunces:wght@500;700&family=IBM+Plex+Sans:wght@400;500;600&display=swap);:root{--bg:#f6f1ea;--panel:#fffaf4;--ink:#1c2027;--muted:#6a5e55;--accent:#1f6f7a;--accent-2:#d77a1c;--line:#eadfd4;--line-strong:#e0d3c7;--shadow:0 18px 45px rgba(28,32,39,.14);--radius:20px}*{box-sizing:border-box}body.med{margin:0;font-family:"IBM Plex Sans",sans-serif;color:var(--ink);background:radial-gradient(circle at 10% 10%,#fff6ea,transparent 55%) , radial-gradient(circle at 90% 0%,#e9f1ff,transparent 55%) , radial-gradient(circle at 80% 80%,#fff1df,transparent 60%) , var(--bg);min-height:100vh}body.med::before{content:"";position:fixed;inset:0;background-image:radial-gradient(rgba(31,111,122,.08) 1px,transparent 0);background-size:22px 22px;opacity:.5;pointer-events:none;z-index:0}.topbar,.shell{position:relative;z-index:1}.panel h2{display:flex;align-items:center;gap:8px}.topbar{padding:40px 8vw 10px;display:flex;justify-content:space-between;align-items:center;gap:20px}.topbar h1{margin:0 0 6px;font-family:"Fraunces",serif;font-size:clamp(1.8rem,3vw,2.8rem);letter-spacing:-.02em}.topbar p{margin:0;color:var(--muted)}.shell{padding:10px 8vw 60px;display:grid;gap:24px;max-width:1200px;margin:0 auto}.record-item{margin-top:10px}.record-detail{margin-top:10px;padding:18px;border-radius:14px;border:1px solid var(--line);background:#fffaf2;box-shadow:0 12px 26px rgba(28,32,39,.08)}.detail-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;padding-bottom:10px;border-bottom:1px solid var(--line)}.close-btn{display:inline-flex;align-items:center;gap:6px;padding:12px 16px;border-radius:12px;background:var(--accent);color:#fffaf4;text-decoration:none;font-weight:600;box-shadow:0 8px 18px rgba(31,111,122,.2)}.close-btn:hover{filter:brightness(.95)}.shell.login{max-width:520px;margin:80px auto;background:var(--panel);padding:30px;border-radius:var(--radius);box-shadow:var(--shadow)}.panel{background:var(--panel);padding:22px;border-radius:var(--radius);box-shadow:var(--shadow);border:1px solid var(--line)}.panel h2{margin:0 0 16px;font-family:"Fraunces",serif}.form,.filters{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}.form label,.filters label{display:grid;gap:6px;font-weight:600}.form input,.filters input,.filters select,.edit-form input,.edit-form textarea,.edit-form select{padding:10px 12px;border-radius:10px;border:1px solid var(--line);font-family:inherit;background:#fff;transition:border-color .15s ease , box-shadow .15s ease}.form button,.filters button,.edit-form button{padding:12px 16px;border-radius:12px;border:none;background:var(--accent);color:#fff;cursor:pointer;box-shadow:0 10px 20px rgba(31,111,122,.25)}.actions{display:flex;gap:12px}.filter-actions{display:flex;align-items:end;gap:10px}.ghost{padding:10px 14px;border-radius:10px;border:1px solid var(--line);background:transparent;text-decoration:none;color:var(--ink)}.alert{padding:12px;border-radius:12px;margin-bottom:12px}.alert.error{background:#ffe3e3;color:#7f1c1c}.alert.success{background:#e3fff6;color:#0c5c4d}.table{display:grid;gap:10px}.merge-bar{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:center;margin-bottom:16px;padding:10px 12px;border-radius:12px;border:1px dashed var(--line-strong);background:#fff3e3}.merge-select{min-width:260px;padding:8px 10px;border-radius:10px;border:1px solid var(--line);background:#fff}.merge-hint{color:var(--muted);font-size:.9rem}.badge{display:inline-flex;align-items:center;gap:6px;margin-left:8px;padding:4px 10px;border-radius:999px;font-size:.85rem;color:var(--muted);background:#f5e7d6;border:1px solid var(--line)}.type-group{border:1px solid var(--line-strong);border-radius:14px;padding:10px 12px 18px;background:#fff6e8}.type-group+.type-group{margin-top:14px}.type-group summary{display:flex;justify-content:space-between;align-items:center;cursor:pointer;font-weight:700;padding:6px 4px 12px;list-style:none}.type-group summary span:first-child{display:inline-flex;align-items:center;gap:8px}.type-group summary span:first-child::before{content:"";width:8px;height:8px;border-radius:999px;background:var(--accent-2);display:inline-block}.type-group summary::-webkit-details-marker{display:none}.type-group .count{color:var(--muted);font-weight:600}.row{display:grid;grid-template-columns:34px 70px 100px 140px 1fr 1fr 80px;gap:10px;padding:12px 10px;border-radius:12px;background:#fff;border:1px solid var(--line);align-items:center;transition:transform .12s ease , box-shadow .12s ease}.col-id{font-weight:600;color:var(--muted)}.col-select{display:flex;align-items:center;justify-content:center}.record-item.drag-over .row{border-color:var(--accent);box-shadow:0 12px 22px rgba(31,111,122,.18)}.row.dragging{opacity:.6}.row.header{background:transparent;font-weight:700;border:none;padding:6px 10px 0;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:.78rem}.row .link{color:var(--accent);text-decoration:none;font-weight:600}.row:hover{transform:translateY(-1px);box-shadow:0 10px 18px rgba(31,111,122,.12)}.detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.detail-grid>div{background:#fff6e8;border:1px solid var(--line);border-radius:12px;padding:12px}.edit-form{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.edit-form .full{grid-column: 1 / -1}.form-actions{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap}.form-actions .close-btn{order:2}.block{margin-top:16px}.rotate-actions{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 12px}.rotate-actions .ghost{background:#fff}.pdf-viewer{margin-top:8px;border-radius:12px;border:1px solid var(--line);overflow:hidden;background:#fff6e8}.pdf-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:12px;padding:12px;background:var(--panel);border-bottom:1px solid var(--line)}.inline-form{margin-top:12px}.inline-form .ghost{cursor:pointer}.ocr-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.ocr-mode{padding:8px 10px;border-radius:10px;border:1px solid var(--line);background:#fff}.pdf-toolbar .range{display:grid;gap:6px;font-weight:600}.range-value{color:var(--muted)}.pdf-frame{width:100%;border:0;height:800px}pre{background:#0d1222;color:#dbe3ff;padding:16px;border-radius:12px;overflow:auto;max-height:260px}@media (max-width:800px){.topbar{flex-direction:column;align-items:flex-start}.layout{grid-template-columns:1fr}.side-panel{position:static;max-height:none}.row{grid-template-columns:1fr;gap:6px}.row.header{display:none}}