:root{--bg:#faf6ec;--surface:#fffcf3;--surface-alt:#f5f0e4;--text:#2a231f;--text-muted:#8a7d74;--yellow:#f0d060;--yellow-dark:#c9a900;--yellow-light:#fdf3a0;--border:rgba(42,35,31,0.12);--border-strong:rgba(42,35,31,0.22);--red:#b14a3c;--red-bg:#fbeee9;--font-sans:"Noto Sans Thai",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;--font-serif:"Noto Serif Thai",Georgia,serif;--font-hand:"Caveat","Noto Sans Thai",cursive;--radius-sm:8px;--radius-md:12px;--radius-lg:16px}*{box-sizing:border-box}body,html{margin:0;padding:0}body{font-family:var(--font-sans);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased}.container{max-width:1400px;margin:0 auto;padding:28px 24px 48px}h1{margin:0 0 6px;font-family:var(--font-serif);font-weight:700;font-size:30px;letter-spacing:-.01em}.subtitle{font-size:18px;margin-bottom:28px;line-height:1.4}.hint,.subtitle{color:var(--text-muted);font-family:var(--font-hand)}.hint{font-size:13px;margin-top:4px}.field{margin-bottom:20px}.field-label{display:block;font-family:var(--font-hand);font-size:15px;color:var(--text-muted);margin-bottom:4px}.drive-input input,.field select{width:100%;max-width:480px;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:14px;font-family:var(--font-sans);background:var(--surface);color:var(--text)}.drive-input input:focus,.field select:focus,input[type=text]:focus,input[type=url]:focus,textarea:focus{outline:none;border-color:var(--yellow-dark);box-shadow:0 0 0 3px var(--yellow-light)}.tabs{display:flex;gap:2px;margin-bottom:16px;border-bottom:1px solid var(--border)}.tab{padding:10px 16px;border:none;border-bottom:2px solid transparent;background:transparent;border-radius:0;font-size:14px;font-family:var(--font-sans);color:var(--text-muted);cursor:pointer}.tab.active{color:var(--text);border-bottom-color:var(--yellow-dark);font-weight:600}.dropzone{border:1.5px dashed var(--border-strong);border-radius:var(--radius-lg);padding:44px 24px;text-align:center;background:var(--surface);cursor:pointer;transition:border-color .15s,background .15s;box-shadow:0 2px 8px rgba(42,35,31,.04)}.dropzone.drag,.dropzone:hover{border-color:var(--yellow-dark)}.dropzone.drag{background:var(--yellow-light)}.dropzone p{margin:6px 0;color:var(--text);font-size:15px}.dropzone p strong{font-weight:600}.dropzone .hint{margin-top:4px}.selected{display:flex;gap:16px;padding:18px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);align-items:flex-start;box-shadow:0 2px 8px rgba(42,35,31,.04)}.selected img{width:160px;height:160px;object-fit:cover;border-radius:var(--radius-md);border:1px solid var(--border)}.selected .filename{font-weight:600;font-size:14px;word-break:break-all;color:var(--text)}.drive-input{display:flex;flex-direction:column;gap:12px}.callout{padding:14px 16px;background:var(--yellow-light);border:1px solid rgba(201,169,0,.35);border-left:3px solid var(--yellow-dark);border-radius:var(--radius-md);font-size:13px;color:#6b5005;line-height:1.6;max-width:640px;font-family:var(--font-sans)}.callout strong{font-weight:700}.callout em{font-style:italic}button{padding:9px 16px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;font-size:14px;font-family:var(--font-sans);transition:transform .12s ease,background .12s ease,border-color .12s ease}button:hover:not(:disabled){border-color:var(--border-strong)}button:disabled{opacity:.45;cursor:not-allowed}button.primary{background:var(--yellow);color:var(--text);border-color:var(--yellow-dark);font-weight:700;transform:rotate(-.5deg)}button.primary:hover:not(:disabled){background:var(--yellow-dark);color:var(--surface);transform:rotate(-.5deg) translateY(-1px)}.status{padding:12px 16px;border-radius:var(--radius-md);margin-top:16px;font-size:14px}.status.info{background:var(--surface-alt);border-left:3px solid var(--yellow);color:var(--text);font-family:var(--font-hand);font-size:16px}.status.error{background:var(--red-bg);border-left:3px solid var(--red);color:var(--red)}.toolbar{display:flex;gap:8px;margin:20px 0 8px;align-items:center}.toolbar .spacer{flex:1 1}.table-toolbar{display:flex;align-items:center;gap:12px;margin:16px 0 8px}.sel-count{font-family:var(--font-hand);font-size:14px;color:var(--yellow-dark)}table.feed{width:100%;border-collapse:collapse;background:var(--surface);font-size:13px;font-family:var(--font-sans);border:1px solid var(--border);border-radius:var(--radius-md);overflow:hidden}table.feed td,table.feed th{border:1px solid var(--border);padding:0;text-align:center;min-width:38px}table.feed th{padding:8px 6px;font-weight:600;color:var(--text)}table.feed th,table.feed th.pond{background:var(--surface-alt);font-family:var(--font-serif)}table.feed th.pond{letter-spacing:.02em}table.feed th.pond.unknown{background:var(--yellow-light);color:var(--yellow-dark);font-style:italic}table.feed td.day{font-family:var(--font-hand);font-size:17px;font-weight:600;color:var(--text)}table.feed td.day,table.feed td.total{background:var(--surface-alt);padding:6px 8px}table.feed td.total{color:var(--yellow-dark)}table.feed td.total,table.feed tr.totals td{font-family:var(--font-serif);font-weight:700}table.feed tr.totals td{background:var(--yellow-light);color:var(--text);padding:8px}table.feed tr.totals td.day{background:var(--yellow);font-family:var(--font-hand);font-size:17px;letter-spacing:.02em}table.feed input.cell{width:100%;border:none;padding:7px 4px;text-align:center;font-size:14px;background:transparent;font-family:var(--font-sans);color:var(--text)}table.feed input.cell:focus{outline:2px solid var(--yellow-dark);outline-offset:-2px;background:var(--surface)}table.feed input.cell.unknown{color:var(--yellow-dark);font-weight:600}table.feed input.cell.unknown,table.feed td.sel{background:var(--yellow-light)}table.feed td.sel input.cell{background:transparent}table.feed td.sel.day,table.feed td.sel.total,table.feed tr.totals td.sel{background:var(--yellow)}table.feed td:focus{outline:2px solid var(--yellow-dark);outline-offset:-2px}table.feed td[tabindex]{cursor:cell;-webkit-user-select:none;-moz-user-select:none;user-select:none}.grand{font-family:var(--font-hand);font-size:17px;color:var(--text-muted)}.grand strong{color:var(--yellow-dark);font-weight:700}