:root{--bg:#faf6ee;--bg-deep:#f2ead7;--card:#fffdf8;--border:#e8dfce;--border-strong:#d6c9ae;--text:#3d352e;--text-soft:#7a6f61;--text-mute:#a89b89;--sage:#9cbe9c;--sage-deep:#7aa37a;--sage-bg:#eaf2e5;--terracotta:#d8a07a;--terracotta-deep:#bb7e58;--terracotta-bg:#f7e9dc;--amber:#e8c77a;--amber-bg:#fbf1d8;--rose:#c4716b;--rose-bg:#f4ddda;--accent:#a39068;--shadow-sm:0 1px 2px #5240260f;--shadow:0 4px 14px #52402614;--radius:14px;--radius-lg:20px}*{box-sizing:border-box}html,body,#root{background:var(--bg);min-height:100%;margin:0;padding:0}body{color:var(--text);-webkit-font-smoothing:antialiased;font-family:-apple-system,BlinkMacSystemFont,Hiragino Sans,Noto Sans JP,system-ui,sans-serif;font-size:16px;line-height:1.55}button{cursor:pointer;color:inherit;background:0 0;border:none;padding:0;font-family:inherit;font-size:1rem}input,select,textarea{color:var(--text);background:var(--card);border:1px solid var(--border-strong);border-radius:10px;outline:none;padding:10px 12px;font-family:inherit;font-size:1rem;transition:border-color .15s}input:focus,select:focus,textarea:focus{border-color:var(--sage-deep)}.app{max-width:720px;margin:0 auto;padding:16px 16px 80px}.header{justify-content:space-between;align-items:center;padding:14px 4px 18px;display:flex}.brand{letter-spacing:.02em;font-size:1.05rem;font-weight:600}.brand .dot{background:var(--sage);vertical-align:middle;border-radius:50%;width:8px;height:8px;margin-right:8px;display:inline-block}.sync-pill{color:var(--text-soft);background:var(--card);border:1px solid var(--border);border-radius:999px;padding:4px 10px;font-size:.78rem}.sync-pill.online{color:var(--sage-deep)}.sync-pill.offline{color:var(--terracotta-deep)}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);margin-bottom:14px;padding:20px}.card h2{color:var(--text-soft);letter-spacing:.06em;margin:0 0 12px;font-size:1rem;font-weight:600}.row{align-items:center;gap:10px;display:flex}.row.between{justify-content:space-between}.stack{flex-direction:column;gap:10px;display:flex}.btn{white-space:nowrap;border:1px solid #0000;border-radius:12px;justify-content:center;align-items:center;gap:6px;padding:12px 18px;font-weight:500;transition:transform 50ms,background .15s,border-color .15s;display:inline-flex}.btn:active{transform:translateY(1px)}.btn.primary{background:var(--sage);color:#fff}.btn.primary:hover{background:var(--sage-deep)}.btn.warm{background:var(--terracotta);color:#fff}.btn.warm:hover{background:var(--terracotta-deep)}.btn.ghost{color:var(--text-soft);border-color:var(--border-strong);background:0 0}.btn.ghost:hover{background:var(--bg-deep)}.btn.danger{background:var(--rose-bg);color:var(--rose);border-color:var(--rose)}.btn.danger:hover{background:var(--rose);color:#fff}.btn.sm{border-radius:10px;padding:7px 12px;font-size:.85rem}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-big{border-radius:16px;flex:1;padding:22px 16px;font-size:1.25rem;font-weight:600}.emp-pick{grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:10px;display:grid}.emp-btn{background:var(--bg-deep);color:var(--text);border:1.5px solid #0000;border-radius:14px;padding:16px 8px;font-weight:500;transition:all .15s}.emp-btn:hover{background:#ece2cb}.emp-btn.active{background:var(--sage-bg);border-color:var(--sage-deep);color:var(--sage-deep)}.mode-toggle{background:var(--bg-deep);border-radius:12px;margin-bottom:16px;padding:4px;display:flex}.mode-toggle button{color:var(--text-soft);border-radius:10px;flex:1;padding:10px;font-size:.9rem;font-weight:500}.mode-toggle button.active{background:var(--card);color:var(--text);box-shadow:var(--shadow-sm)}.muted{color:var(--text-soft)}.tiny{font-size:.8rem}.mini{letter-spacing:.04em;text-transform:uppercase;color:var(--text-mute);font-size:.72rem}table.records{border-collapse:collapse;width:100%;font-size:.9rem}table.records th,table.records td{text-align:left;border-bottom:1px solid var(--border);padding:9px 6px}table.records th{color:var(--text-mute);letter-spacing:.05em;text-transform:uppercase;font-size:.78rem;font-weight:500}table.records tr:last-child td{border-bottom:none}.tag{border-radius:999px;padding:2px 8px;font-size:.72rem;font-weight:500;display:inline-block}.tag.pending{background:var(--amber-bg);color:#9c7a1f}.tag.approved{background:var(--sage-bg);color:var(--sage-deep)}.tag.rejected{background:var(--rose-bg);color:var(--rose)}.tag.modified{background:var(--terracotta-bg);color:var(--terracotta-deep)}.tabs{background:var(--bg-deep);border-radius:14px;gap:4px;margin-bottom:16px;padding:5px;display:flex}.tabs button{color:var(--text-soft);border-radius:10px;flex:1;padding:9px 10px;font-size:.92rem;font-weight:500}.tabs button.active{background:var(--card);color:var(--text);box-shadow:var(--shadow-sm)}.summary-grid{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.summary-cell{background:var(--bg-deep);text-align:center;border-radius:12px;padding:12px}.summary-cell .num{color:var(--text);font-size:1.4rem;font-weight:600}.summary-cell .label{color:var(--text-soft);margin-top:2px;font-size:.75rem}.modal-back{z-index:100;background:#3d352e59;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal{background:var(--card);border-radius:var(--radius-lg);width:100%;max-width:420px;box-shadow:var(--shadow);padding:22px}.modal h3{margin:0 0 14px;font-size:1.05rem}.toast{background:var(--text);color:var(--bg);box-shadow:var(--shadow);z-index:200;border-radius:999px;padding:10px 18px;font-size:.9rem;animation:.2s toast-in;position:fixed;bottom:30px;left:50%;transform:translate(-50%)}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,8px)}}.pin-input{letter-spacing:.5em;text-align:center;width:100%;max-width:220px;margin:8px auto;padding:14px;font-size:1.6rem;display:block}.pin-dots{justify-content:center;gap:14px;min-height:18px;margin:10px 0 22px;display:flex}.pin-dot{border:2px solid var(--border-strong);background:0 0;border-radius:50%;width:14px;height:14px;transition:all .15s}.pin-dot.filled{background:var(--sage-deep);border-color:var(--sage-deep);transform:scale(1.08)}.pinpad{grid-template-columns:repeat(3,1fr);gap:10px;max-width:320px;margin:0 auto;display:grid}.pin-key{background:var(--bg-deep);color:var(--text);-webkit-user-select:none;user-select:none;border:1.5px solid #0000;border-radius:14px;padding:18px 0;font-size:1.4rem;font-weight:500;transition:all .1s}.pin-key:active{background:var(--sage-bg);transform:scale(.96)}.pin-key.ghost{border-color:var(--border);color:var(--text-soft);background:0 0;font-size:1rem}.pin-key.ghost:active{background:var(--bg-deep)}.field{flex-direction:column;gap:4px;display:flex}.field label{color:var(--text-soft);letter-spacing:.04em;font-size:.78rem}.req-row{border:1px solid var(--border);background:var(--bg-deep);border-radius:12px;grid-template-columns:1fr auto;gap:8px;margin-bottom:8px;padding:12px;display:grid}.req-row .meta{color:var(--text-soft);margin-top:4px;font-size:.78rem}.req-row .actions{align-items:center;gap:6px;display:flex}.month-nav{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.month-nav .period{color:var(--text);font-size:.95rem;font-weight:500}.month-nav button{color:var(--text-soft);border-radius:10px;padding:6px 12px}.month-nav button:hover{background:var(--bg-deep)}.empty{text-align:center;color:var(--text-mute);padding:28px 12px;font-size:.92rem}
