:root{--bg:#0b0d10;--bg2:#13161b;--bg3:#171b21;--bg4:#1d222a;--line:#262b33;--line2:#323845;--text:#e9e6df;--text2:#bcb8ae;--muted:#8b887f;--gold:#c2a36b;--gold2:#d8bd8a;--gold-dim:#7e6a42;--sage:#8aa888;--slate:#9bb0c6;--amber:#c7a45e;--rust:#c0846f;--radius:6px;--radius-lg:8px;--radius-pill:999px;--serif:"Noto Serif JP","Hiragino Mincho ProN","Yu Mincho",serif;--sans:"Noto Sans JP",-apple-system,"Segoe UI",sans-serif;--shadow:0 1px 2px rgba(0,0,0,.4);--shadow-lg:0 24px 60px -20px rgba(0,0,0,.7)}*{box-sizing:border-box}body,html{margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:var(--serif);font-size:14px;line-height:1.7;-webkit-font-smoothing:antialiased;letter-spacing:.02em}a{color:inherit;text-decoration:none}button{cursor:pointer;font-family:inherit}.kpi-value,.num,.pp-input,.t-date,td.num{font-variant-numeric:tabular-nums}.appbar{background:linear-gradient(180deg,#0e1116,#0b0d10);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:40}.appbar-inner{justify-content:space-between;margin:0 auto;max-width:1320px;padding:16px 30px}.appbar-inner,.brand{align-items:center;display:flex}.brand{gap:14px}.brand-mark{background:linear-gradient(145deg,#1c1f25,#10131800);border:1px solid var(--gold-dim);border-radius:3px;color:var(--gold2);display:grid;font-family:var(--serif);font-size:19px;font-weight:600;height:42px;place-items:center;width:42px}.brand-name{color:var(--text);font-size:18px;font-weight:600;letter-spacing:.08em}.brand-sub{color:var(--gold);font-family:var(--sans);font-size:10px;font-weight:500;letter-spacing:.34em;margin-top:2px;text-transform:uppercase}.appbar-right{align-items:center;display:flex;gap:22px}.appbar-link{color:var(--text2);font-family:var(--sans);font-size:13px;transition:.2s}.appbar-btn,.appbar-link:hover{color:var(--gold2)}.appbar-btn{align-items:center;background:transparent;border:1px solid var(--gold-dim);border-radius:3px;display:inline-flex;font-family:var(--sans);font-size:12.5px;font-weight:500;gap:8px;letter-spacing:.04em;padding:9px 16px;transition:.2s}.appbar-btn:hover{background:rgba(194,163,107,.1);border-color:var(--gold)}.appbar-btn svg{flex-shrink:0}.user-chip{align-items:center;background:var(--bg3);border:1px solid var(--line2);border-radius:var(--radius-pill);display:flex;gap:11px;padding:5px 16px 5px 7px}.user-chip .avatar{background:#0e1116;background-position:50%;background-size:cover;border:1px solid var(--gold-dim);border-radius:50%;color:var(--gold2);display:grid;font-size:14px;font-weight:600;height:32px;place-items:center;width:32px}.u-name{color:var(--text);font-size:13px;font-weight:600;line-height:1.3}.u-role{color:var(--muted);font-family:var(--sans);font-size:11px;line-height:1.3}.app{margin:0 auto;max-width:1320px;padding:34px 30px}.page-head{border-bottom:1px solid var(--line);margin-bottom:26px;padding-bottom:22px}.ph-title{color:var(--text);font-size:25px;font-weight:600;letter-spacing:.04em;margin:0 0 8px}.ph-title:before{background:var(--gold);content:"";display:inline-block;height:1px;margin-bottom:6px;margin-right:14px;vertical-align:middle;width:26px}.ph-sub{color:var(--text2);font-family:var(--sans);font-size:13.5px;letter-spacing:.01em;margin:0}.kpis{background:#e9e5db;border:1px solid #e9e5db;border-radius:var(--radius-lg);box-shadow:0 1px 3px rgba(0,0,0,.35);display:grid;gap:1px;grid-template-columns:repeat(4,1fr);margin-bottom:24px;overflow:hidden}.kpi{background:#fff;display:flex;flex-direction:column;gap:10px;padding:20px 22px;text-align:left;transition:.2s}.kpi:hover{background:#faf8f2}.kpi-label{color:#55514a;font-family:var(--sans);font-size:11px;font-weight:500;letter-spacing:.08em}.kpi-value{color:#8a6d39;font-size:30px;font-weight:600;letter-spacing:.02em;line-height:1}:root{--paper:#fff;--paper2:#faf8f2;--ivory:#f3f0e8;--rule:#e9e5db;--rule2:#dfdacd;--ink:#211f1b;--ink2:#55514a;--ink3:#857f74;--goldd:#8a6d39}.notice{align-items:center;background:var(--paper2);border:1px solid var(--rule);border-left:2px solid var(--goldd);border-radius:var(--radius);color:var(--ink2);display:flex;font-family:var(--sans);font-size:13px;gap:12px;margin-bottom:22px;padding:14px 18px}.notice svg{color:var(--goldd);flex-shrink:0}.panel{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden}.panel-toolbar{align-items:center;border-bottom:1px solid var(--rule);display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;padding:16px 20px}.tabs{background:var(--ivory);border:1px solid var(--rule);border-radius:4px;display:flex;gap:2px;padding:3px}.tab{background:transparent;border:none;border-radius:3px;color:var(--ink2);font-family:var(--sans);font-size:13px;font-weight:500;letter-spacing:.03em;padding:8px 18px;transition:.2s}.tab:hover{color:var(--ink)}.tab.is-on{background:var(--paper);box-shadow:0 1px 2px rgba(0,0,0,.08);color:var(--goldd)}.filters{flex-wrap:wrap;gap:10px}.filters,.search{align-items:center;display:flex}.search{background:var(--paper);border:1px solid var(--rule2);border-radius:4px;gap:8px;padding:0 12px;transition:.2s}.search:focus-within{border-color:var(--goldd)}.search svg{color:var(--ink3);flex-shrink:0}.search input{background:transparent;border:none;color:var(--ink);font-family:var(--sans);font-size:13px;outline:none;padding:9px 0;width:220px}.search input::placeholder{color:var(--ink3)}.table-wrap{background:var(--paper);overflow-x:auto}table.crm{border-collapse:collapse;min-width:1040px;width:100%}table.crm thead th{background:var(--ivory);border-bottom:1px solid var(--rule2);color:var(--goldd);font-family:var(--sans);font-size:10.5px;font-weight:600;letter-spacing:.14em;padding:13px 18px;position:sticky;text-align:left;text-transform:uppercase;top:0;white-space:nowrap;z-index:1}table.crm th.num{text-align:right}table.crm tbody td{border-bottom:1px solid var(--rule);color:var(--ink2);font-size:13.5px;padding:15px 18px;vertical-align:middle}table.crm tbody tr{transition:background .15s}table.crm tbody tr:hover{background:var(--paper2)}table.crm tbody tr:last-child td{border-bottom:none}td.num{text-align:right}.t-theme{color:var(--ink);font-weight:600;letter-spacing:.02em}.t-date{color:var(--ink2);white-space:nowrap}.t-date .sub{color:var(--ink3);display:block;font-family:var(--sans);font-size:11px}.t-amount{color:var(--goldd);font-size:14.5px;font-weight:600}.badge{align-items:center;background:var(--ivory);border:1px solid var(--rule2);border-radius:var(--radius-pill);color:var(--ink2);display:inline-flex;font-family:var(--sans);font-size:12px;font-weight:500;gap:7px;padding:4px 12px;white-space:nowrap}.badge .dot{border-radius:50%;height:6px;width:6px}.badge .dot,.badge.pending .dot{background:var(--ink3)}.badge.confirmed{color:#345b86}.badge.confirmed .dot{background:#3a6699}.badge.prep{color:#9a6b1f}.badge.prep .dot{background:#c08a2e}.badge.done{color:#3f6f43}.badge.done .dot{background:#4e8a52}.badge.cancel{color:#a14a32}.badge.cancel .dot{background:#bd5a3e}.col-status{width:108px}.col-date{width:120px}.col-fmt{width:86px}.col-people{width:176px}.col-confirm{width:100px}.pp-cell{white-space:nowrap}.pp-edit{align-items:center;display:inline-flex;gap:7px}.pp-input{background:var(--paper);border:1px solid var(--rule2);border-radius:4px;color:var(--ink);font-family:var(--serif);font-size:13.5px;padding:7px 9px;text-align:right;width:64px}.pp-input:focus{border-color:var(--goldd);box-shadow:0 0 0 2px rgba(138,109,57,.15);outline:none}.pp-unit{color:var(--ink3)}.pp-save,.pp-unit{font-family:var(--sans);font-size:12px}.pp-save{background:transparent;border:1px solid var(--goldd);border-radius:4px;color:var(--goldd);font-weight:600;letter-spacing:.04em;padding:7px 13px;transition:.2s}.pp-save:hover:not(:disabled){background:var(--goldd);color:#fff}.pp-save:disabled{border-color:var(--rule2);color:var(--ink3);cursor:default;opacity:.6}.pp-fixed{color:var(--ink2);font-weight:600}.confirm-badge{background:var(--ivory);border:1px solid var(--rule2);border-radius:var(--radius-pill);color:var(--ink3);display:inline-block;font-family:var(--sans);font-size:11px;font-weight:500;letter-spacing:.04em;padding:3px 11px}.confirm-badge.is-fixed{background:#eef5ee;border-color:#cfe2cf;color:#3f6f43}.loading-cell{background:var(--paper);color:var(--ink3);font-family:var(--sans);padding:52px 0!important;text-align:center}.loading-cell .spinner{display:inline-block;margin-right:10px;vertical-align:middle}.spinner{animation:spin .8s linear infinite;border:2px solid var(--rule2);border-radius:50%;border-top-color:var(--goldd);height:22px;width:22px}@keyframes spin{to{transform:rotate(1turn)}}.empty-cell{background:var(--paper);color:var(--ink3);font-family:var(--sans);padding:60px 20px!important;text-align:center}.empty-cell .ic{display:block;font-size:28px;margin-bottom:8px}.table-foot{background:var(--paper);border-top:1px solid var(--rule);color:var(--ink3);font-family:var(--sans);font-size:12px;padding:14px 20px}.appfoot{background:#0e1116;border-top:1px solid var(--line);margin-top:40px}.appfoot-inner{color:var(--muted);display:flex;font-family:var(--sans);font-size:11.5px;justify-content:space-between;letter-spacing:.06em;margin:0 auto;max-width:1320px;padding:22px 30px}.toast-container{bottom:26px;display:flex;flex-direction:column;gap:10px;position:fixed;right:26px;z-index:100}.toast{background:#16191f;border:1px solid var(--gold-dim);border-radius:4px;box-shadow:var(--shadow-lg);color:var(--text);font-family:var(--sans);font-size:13px;opacity:0;padding:13px 20px;transform:translateY(8px);transition:.3s}.toast.show{opacity:1;transform:none}.toast.is-err{border-color:var(--rust);color:var(--rust)}@media (max-width:900px){.kpis{grid-template-columns:repeat(2,1fr)}.search input{width:150px}}