*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,"Noto Sans TC",system-ui,sans-serif;background:linear-gradient(180deg,#f7fbff 0%,#eef4ff 38%,#f8f4ff 100%);color:#0f172a;padding:20px;min-height:100vh;overflow-x:hidden}body::before{content:"";position:fixed;inset:-20% auto auto -10%;width:420px;height:420px;background:radial-gradient(circle,#8b5cf633 0%,#8b5cf600 70%);pointer-events:none;z-index:0}body::after{content:"";position:fixed;inset:auto -8% -14% auto;width:420px;height:420px;background:radial-gradient(circle,#22c55e22 0%,#22c55e00 70%);pointer-events:none;z-index:0}body>*{position:relative;z-index:1}a{color:#2563eb;text-decoration:none;transition:all .18s ease;overflow-wrap:anywhere}a:hover{color:#1d4ed8}h1,h2{margin:0 0 12px;letter-spacing:-.02em}.muted{color:#64748b;overflow-wrap:anywhere}.small{font-size:12px}.eyebrow{text-transform:uppercase;letter-spacing:.14em;color:#7c3aed;font-size:11px;font-weight:800;margin-bottom:8px}.topbar,.card,.login-card{background:rgba(255,255,255,.88);backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.9);border-radius:24px;box-shadow:0 18px 50px rgba(37,99,235,.10),0 6px 20px rgba(15,23,42,.06)}.topbar{padding:24px 24px 20px;display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin:0 auto 20px;max-width:1320px;position:sticky;top:12px;z-index:20}.topbar>*{min-width:0}.topbar h1{font-size:clamp(28px,3vw,40px);margin-bottom:0;overflow-wrap:anywhere}.topbar-main{flex:1;min-width:0}.topbar-title-row{display:flex;align-items:center;gap:10px;margin-bottom:12px}.topbar-controls{display:flex;align-items:flex-start;gap:10px}.top-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end;min-width:0}.top-actions>*{min-width:0;max-width:100%}.topbar-toggle{width:42px;min-width:42px;height:42px;padding:0;border-radius:999px;border:1px solid #dbe4ff;background:linear-gradient(180deg,#fff 0%,#f6faff 100%);color:#334155;box-shadow:none;font-size:18px;font-weight:900;cursor:pointer;flex:0 0 42px}.topbar.is-collapsed .top-actions{display:none}.topbar.is-collapsed .topbar-main .muted,.topbar.is-collapsed .topbar-main .eyebrow{display:none}.topbar.is-collapsed{padding-bottom:16px}.card{padding:22px;margin:0 auto 20px;max-width:1320px;min-width:0;overflow:hidden}.danger-card{border-color:#fdba74;background:linear-gradient(180deg,#fff7ed 0%,#fff3e8 100%)}.inner-card{background:rgba(247,250,255,.92);border:1px solid #dbeafe;margin-top:4px;border-radius:18px}.login-page{min-height:100vh;display:grid;place-items:center;padding:20px}.login-card{width:min(100%,520px);padding:32px;background:rgba(255,255,255,.95)}.stack-form label{display:block;font-weight:700;font-size:14px;margin-bottom:14px;min-width:0}.label-title{font-weight:800;font-size:14px;margin-bottom:10px;color:#1e293b}.stack-form input,.stack-form textarea,.stack-form select,.inline-form input,.inline-form select{width:100%;max-width:100%;margin-top:8px;padding:13px 15px;border-radius:16px;border:1px solid #dbe4ff;background:linear-gradient(180deg,#fff 0%,#f8fbff 100%);color:#0f172a;box-shadow:inset 0 1px 2px rgba(15,23,42,.03);transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}.stack-form textarea{min-height:112px;resize:vertical}.stack-form input:focus,.stack-form textarea:focus,.stack-form select:focus,.inline-form input:focus,.inline-form select:focus{outline:none;border-color:#60a5fa;box-shadow:0 0 0 4px rgba(96,165,250,.18)}.stack-form button,.inline-form button,.secondary{display:inline-flex;align-items:center;justify-content:center;padding:13px 18px;border-radius:16px;border:0;background:linear-gradient(135deg,#2563eb 0%,#7c3aed 100%);color:#fff;font-weight:800;cursor:pointer;box-shadow:0 12px 24px rgba(59,130,246,.22);transition:transform .18s ease,box-shadow .18s ease,opacity .18s ease;max-width:100%;white-space:normal;word-break:break-word;text-align:center}.stack-form button:hover,.inline-form button:hover,.secondary:hover{transform:translateY(-1px);box-shadow:0 16px 28px rgba(59,130,246,.24)}.stack-form button:disabled,.inline-form button:disabled,.secondary:disabled{opacity:.65;cursor:wait;transform:none}.secondary{background:linear-gradient(180deg,#fff 0%,#f6faff 100%);border:1px solid #dbe4ff;color:#334155;box-shadow:none}.secondary:hover{background:#fff;color:#0f172a}.grid.two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;max-width:1320px;margin-left:auto;margin-right:auto}.grid.three{display:grid;grid-template-columns:repeat(3,minmax(220px,1fr));gap:14px;max-width:1320px;margin-left:auto;margin-right:auto}.grid.three.section-tight{display:grid;grid-template-columns:repeat(3,minmax(220px,1fr));align-items:stretch}.inline-form{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:16px}.doc-list,.timeline-list{display:grid;gap:12px;min-width:0}.compact-list .doc-item{padding:14px}.doc-item,.timeline-item{display:flex;justify-content:space-between;gap:16px;padding:16px;border:1px solid #e3ecff;border-radius:20px;background:linear-gradient(180deg,#fff 0%,#f9fbff 100%);box-shadow:0 8px 20px rgba(15,23,42,.03);min-width:0}.doc-main,.timeline-body{flex:1;min-width:0}.timeline-date{min-width:120px;color:#7c3aed;font-weight:800;overflow-wrap:anywhere}.timeline-body{flex:1}.doc-item-tall{align-items:flex-start}.doc-thumb{width:150px;flex:0 0 150px}.doc-thumb-frame{position:relative}.doc-thumb img,.preview-image{width:100%;border-radius:16px;border:1px solid #dbe4ff;background:#f8fafc;box-shadow:0 12px 20px rgba(15,23,42,.05)}.page-badge{position:absolute;right:8px;bottom:8px;padding:5px 9px;border-radius:999px;background:rgba(255,255,255,.94);border:1px solid #dbe4ff;color:#475569;font-size:12px;font-weight:800}.doc-title{font-weight:800;margin-bottom:6px;word-break:break-word;overflow-wrap:anywhere;color:#0f172a}.title-page-count{color:#6366f1;font-size:13px;font-weight:700}.doc-meta{display:flex;flex-wrap:wrap;gap:8px 12px;font-size:13px;color:#475569;min-width:0}.doc-meta span{display:inline-flex;align-items:center;padding:6px 10px;border-radius:999px;background:#eef4ff;border:1px solid #dbeafe;max-width:100%;min-width:0;overflow-wrap:anywhere;word-break:break-word}.doc-people,.doc-allocations{margin-top:10px;color:#334155;font-size:14px}.doc-notes{margin-top:8px;color:#334155;white-space:pre-wrap;line-height:1.55;overflow-wrap:anywhere;word-break:break-word}.doc-actions{display:flex;align-items:center;min-width:0}.doc-actions.vertical{flex-direction:column;gap:10px;align-items:flex-end}.alert{padding:14px 16px;border-radius:18px;margin:0 auto 18px;max-width:1320px;border:1px solid transparent;font-weight:700;overflow-wrap:anywhere}.alert.success{background:#ecfdf5;border-color:#86efac;color:#166534}.alert.error{background:#fef2f2;border-color:#fecaca;color:#b91c1c}.alert.warning{background:#fff7ed;border-color:#fdba74;color:#9a3412}.empty{padding:18px;border-radius:18px;background:linear-gradient(180deg,#fff 0%,#f8fbff 100%);color:#64748b;border:1px dashed #c7d2fe;overflow-wrap:anywhere}.checkbox-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.check-pill,.radio-pill{display:flex;align-items:center;gap:8px;padding:11px 12px;border:1px solid #dbe4ff;border-radius:15px;background:#fff;min-width:0}.check-pill input,.radio-pill input{width:auto;margin:0}.summary-list{display:grid;gap:10px;min-width:0}.summary-row{display:grid;grid-template-columns:minmax(92px,34%) minmax(0,1fr);align-items:start;gap:12px;padding:13px 14px;border-radius:16px;background:linear-gradient(180deg,#fff 0%,#f8fbff 100%);border:1px solid #e2e8f0}.summary-row>span{min-width:0;font-weight:700;color:#334155;word-break:break-word}.summary-row strong{color:#0f172a;min-width:0;text-align:right;line-height:1.45;word-break:break-word;overflow-wrap:anywhere}.stat-card{overflow:hidden;position:relative}.stat-card::after{content:"";position:absolute;inset:auto -20px -30px auto;width:130px;height:130px;background:radial-gradient(circle,#8b5cf61c 0%,#8b5cf600 72%);pointer-events:none}.stat-card h2{margin:0;font-size:34px;color:#0f172a}.section-tight{margin-bottom:18px}.preview-image-card{display:flex;align-items:center;justify-content:center}.image-review-card{display:block}.image-toolbar{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px}.image-stage{margin-top:12px;min-height:420px;max-height:70vh;overflow:auto;border:1px solid #dbe4ff;border-radius:18px;background:#f8fbff;padding:16px;display:flex;align-items:flex-start;justify-content:center}.image-review-target{max-width:none;transition:transform .15s ease;transform-origin:center center;cursor:grab}.image-review-target:active{cursor:grabbing}.image-canvas-stage{align-items:flex-start;justify-content:flex-start}.editor-canvas{display:block;max-width:none;background:#fff;border-radius:12px;cursor:crosshair;touch-action:none;-webkit-user-select:none;user-select:none;box-shadow:0 10px 24px rgba(15,23,42,.06)}.filters>*{flex:1 1 180px}.filters-form .grid{margin-bottom:12px}.compact-check-grid{grid-template-columns:repeat(2,minmax(0,1fr));max-height:220px;overflow:auto;padding-right:4px}.split-topbar{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:12px}.split-actions{display:flex;gap:8px;flex-wrap:wrap}.split-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.soft-sep{border:0;border-top:1px solid #e2e8f0;margin:20px 0}.table-wrap{overflow:auto;border-radius:18px;border:1px solid #dbe4ff;background:#fff;max-width:100%}.admin-table{width:100%;border-collapse:collapse}.admin-table th,.admin-table td{padding:12px 14px;border-bottom:1px solid #edf2ff;text-align:left;vertical-align:top;overflow-wrap:anywhere}.admin-table th{background:#f5f8ff;color:#475569;font-size:13px}.evidence-details{margin-top:10px;min-width:0}.evidence-details summary{cursor:pointer;color:#2563eb;font-weight:700;overflow-wrap:anywhere}.report-page{background:#f8fafc;color:#0f172a}.report-page .card,.report-page .topbar{background:#fff;border-color:#cbd5e1;box-shadow:none}.report-page .muted{color:#475569}.report-page a{color:#1d4ed8}.report-filters{display:grid;gap:6px;margin-bottom:18px}.report-table th{background:#f8fafc;position:sticky;top:0}details{border:1px solid #e2e8f0;border-radius:18px;background:linear-gradient(180deg,#fff 0%,#f9fbff 100%);padding:14px 16px;min-width:0}details>summary{list-style:none;font-weight:800;color:#0f172a;overflow-wrap:anywhere}details>summary::-webkit-details-marker{display:none}details[open]{box-shadow:0 10px 24px rgba(15,23,42,.05)}.summary-menu-card{padding:10px 14px}.summary-accordion{padding:0;overflow:hidden}.summary-menu-item{border:0;border-radius:0;background:transparent;padding:0}.summary-menu-item+.summary-menu-item{border-top:1px solid #e2e8f0}.summary-accordion summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 8px;cursor:pointer}.summary-accordion summary span{font-size:18px;font-weight:800}.summary-accordion summary::after{content:"⌄";margin-left:auto;color:#64748b;font-size:18px;transition:transform .18s ease}.summary-accordion[open] summary::after{transform:rotate(180deg)}.summary-accordion .summary-list{padding:0 8px 18px}.app-submit-overlay{position:fixed;inset:0;background:rgba(244,247,255,.72);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .2s ease;z-index:9999;padding:20px}.app-submit-overlay.active{opacity:1;pointer-events:auto}.app-submit-sheet{width:min(100%,360px);background:rgba(255,255,255,.94);border:1px solid rgba(255,255,255,.96);border-radius:28px;box-shadow:0 25px 60px rgba(59,130,246,.18),0 10px 30px rgba(15,23,42,.08);padding:24px;text-align:center}.app-submit-spinner{width:54px;height:54px;border-radius:50%;margin:0 auto 14px;border:4px solid #dbeafe;border-top-color:#7c3aed;border-right-color:#2563eb;animation:spin .8s linear infinite}.app-submit-title{font-weight:900;font-size:18px;color:#0f172a;margin-bottom:8px}.app-submit-text{color:#64748b;font-size:14px;line-height:1.5}.app-page-shell{max-width:1380px;margin:0 auto}.app-floating-hint{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border-radius:999px;background:#fff;border:1px solid #e2e8f0;color:#475569;font-size:12px;font-weight:700;box-shadow:0 8px 18px rgba(15,23,42,.04)}.stack-form button,.inline-form button,button.secondary,a.secondary{min-height:46px}.top-actions a.secondary,.top-actions button.secondary{border-radius:999px}.report-page details,.report-page .summary-row,.report-page .doc-item{box-shadow:none}@keyframes spin{to{transform:rotate(360deg)}}@media print{body.report-page{padding:0;background:#fff}body.report-page .secondary{display:none}.card{box-shadow:none}a{text-decoration:none;color:inherit}}@media (max-width:900px){body{padding:14px}.grid.two,.checkbox-grid,.split-grid{grid-template-columns:1fr}.grid.three.section-tight{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.grid.three.section-tight>.card{min-width:0;margin-bottom:0}.grid.three.section-tight>.stat-card{padding:14px}.grid.three.section-tight>.stat-card .eyebrow{font-size:10px;letter-spacing:.08em;line-height:1.3}.grid.three.section-tight>.stat-card h2{font-size:24px;line-height:1.1}.summary-menu-card{padding:8px 12px}.summary-accordion summary{padding:16px 6px}.summary-accordion summary span{font-size:16px}.summary-accordion .summary-list{padding:0 6px 16px}.summary-row{grid-template-columns:minmax(80px,32%) minmax(0,1fr);gap:10px;padding:12px}.summary-row strong{font-size:13px;line-height:1.4}.topbar{display:grid;grid-template-columns:1fr;top:8px;padding:18px}.topbar-controls{display:grid;grid-template-columns:1fr auto;align-items:start}.doc-item,.timeline-item{flex-direction:column}.doc-thumb{width:100%;flex:auto}.top-actions{width:100%;justify-content:flex-start}.top-actions a,.top-actions button,.split-actions>*{flex:1 1 calc(50% - 8px)}.compact-check-grid{grid-template-columns:1fr}.card{padding:18px}.stat-card h2{font-size:28px}}