svg.pencil-filters{position:absolute;width:0;height:0}:root{--paper-base: #FDFDF5;--paper-warm: #F8F6ED;--paper-darker: #F0EEE3;--ink: #2C2B26;--ink-light: #6B6A63;--ink-faint: #A8A79F;--graphite: #4A4944;--pencil-line: #9B9A92;--red: #C9524F;--red-bg: #FAF0EF;--blue: #4F74B8;--blue-bg:#EFF3FA;--green: #4B9E6F;--green-bg:#EFF8F3;--yellow: #C4A42D;--yellow-bg:#FAF6E8;--purple: #8B52C4;--purple-bg:#F5EFF9;--orange: #C47B3A;--orange-bg:#FAF2E8;--teal: #3A9EA5;--teal-bg:#EFF7F8;--gray-bg: #F2F1EA;--font-sketch: "Klee One", "Noto Sans JP", cursive;--font-body: "Noto Sans JP", "Helvetica Neue", Arial, sans-serif;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--shadow-sm: 2px 2px 0px rgba(44, 43, 38, .15);--shadow-md: 3px 3px 0px rgba(44, 43, 38, .18);--shadow-lg: 4px 4px 0px rgba(44, 43, 38, .2)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-font-smoothing:antialiased}body{font-family:var(--font-body);background-color:var(--paper-warm);color:var(--ink);min-height:100vh;background-image:repeating-linear-gradient(0deg,transparent,transparent 27px,rgba(155,154,146,.08) 27px,rgba(155,154,146,.08) 28px)}.p-card{background:var(--paper-base);border:1.5px solid var(--ink);border-radius:var(--radius-md);box-shadow:var(--shadow-md);padding:20px;position:relative;transition:box-shadow .15s ease,transform .15s ease}.p-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-1px)}.p-card--flat{box-shadow:none}.p-card--sm{padding:12px 16px}.p-heading{font-family:var(--font-sketch);font-weight:700;color:var(--ink);line-height:1.2}.p-heading--xl{font-size:2.4rem}.p-heading--lg{font-size:1.8rem}.p-heading--md{font-size:1.4rem}.p-heading--sm{font-size:1.1rem}.p-btn{font-family:var(--font-sketch);font-size:1.05rem;font-weight:600;padding:8px 20px;border:1.5px solid var(--ink);border-radius:var(--radius-sm);background:var(--paper-base);color:var(--ink);cursor:pointer;box-shadow:var(--shadow-sm);transition:box-shadow .12s ease,transform .12s ease,background .12s ease;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.p-btn:hover{box-shadow:3px 3px #2c2b2633;transform:translate(-1px,-1px)}.p-btn:active{box-shadow:1px 1px #2c2b2626;transform:translate(1px,1px)}.p-btn--primary{background:var(--ink);color:var(--paper-base)}.p-btn--primary:hover{background:var(--graphite)}.p-btn--danger{background:var(--red-bg);border-color:var(--red);color:var(--red)}.p-btn--danger:hover{background:#fce8e8}.p-btn--ghost{border-color:transparent;box-shadow:none;background:transparent}.p-btn--ghost:hover{background:var(--paper-darker);box-shadow:none;transform:none}.p-btn--sm{font-size:.9rem;padding:5px 12px}.p-btn--icon{padding:6px;min-width:32px;justify-content:center}.p-input,.p-select,.p-textarea{font-family:var(--font-body);font-size:.95rem;width:100%;padding:9px 12px;border:1.5px solid var(--pencil-line);border-radius:var(--radius-sm);background:var(--paper-base);color:var(--ink);outline:none;transition:border-color .15s;box-shadow:inset 1px 1px 2px #2c2b260f}.p-input:focus,.p-select:focus,.p-textarea:focus{border-color:var(--ink);box-shadow:inset 1px 1px 2px #2c2b260f,0 0 0 2px #2c2b2614}.p-input::placeholder{color:var(--ink-faint)}.p-label{font-family:var(--font-sketch);font-size:.95rem;font-weight:600;color:var(--graphite);display:block;margin-bottom:4px}.p-form-group{display:flex;flex-direction:column;gap:4px;margin-bottom:16px}.p-badge{display:inline-flex;align-items:center;gap:4px;font-family:var(--font-sketch);font-size:.85rem;font-weight:600;padding:2px 10px;border-radius:20px;border:1.5px solid currentColor;white-space:nowrap}.p-badge--active{color:var(--green);background:var(--green-bg)}.p-badge--paused{color:var(--orange);background:var(--orange-bg)}.p-badge--cancelled{color:var(--ink-faint);background:var(--gray-bg);border-color:var(--ink-faint)}.p-badge--warning{color:var(--yellow);background:var(--yellow-bg)}.p-badge--danger{color:var(--red);background:var(--red-bg)}.p-divider{border:none;border-top:1.5px dashed var(--pencil-line);margin:16px 0}.p-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#2c2b2666;display:flex;align-items:center;justify-content:center;z-index:1000;padding:16px;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.p-modal{background:var(--paper-base);border:2px solid var(--ink);border-radius:var(--radius-lg);box-shadow:6px 6px #2c2b2640;width:100%;max-width:540px;max-height:90vh;overflow-y:auto;padding:28px;position:relative}.p-modal__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.p-modal__footer{display:flex;justify-content:flex-end;gap:10px;margin-top:24px}.p-color-dot{width:12px;height:12px;border-radius:50%;border:1.5px solid rgba(44,43,38,.3);display:inline-block;flex-shrink:0}.p-stat-card{background:var(--paper-base);border:1.5px solid var(--ink);border-radius:var(--radius-md);box-shadow:var(--shadow-md);padding:16px 20px}.p-stat-card__label{font-family:var(--font-sketch);font-size:.9rem;color:var(--ink-light);margin-bottom:4px}.p-stat-card__value{font-family:var(--font-sketch);font-size:1.9rem;font-weight:700;color:var(--ink);line-height:1.1}.p-stat-card__sub{font-size:.8rem;color:var(--ink-faint);margin-top:4px}.p-category-bar{height:8px;border-radius:4px;background:var(--paper-darker);overflow:hidden;border:1px solid var(--pencil-line)}.p-category-bar__fill{height:100%;border-radius:4px;transition:width .4s ease}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:var(--paper-warm)}::-webkit-scrollbar-thumb{background:var(--pencil-line);border-radius:4px;border:2px solid var(--paper-warm)}.p-text-muted{color:var(--ink-light)}.p-text-faint{color:var(--ink-faint)}.p-text-sketch{font-family:var(--font-sketch)}.p-gap-sm{gap:8px}.p-gap-md{gap:12px}.p-gap-lg{gap:20px}.p-currency-toggle{display:flex;border:1.5px solid var(--ink);border-radius:var(--radius-sm);overflow:hidden;box-shadow:var(--shadow-sm)}.p-currency-toggle__btn{font-family:var(--font-sketch);font-size:1rem;font-weight:700;padding:6px 16px;background:var(--paper-base);color:var(--ink-light);border:none;cursor:pointer;transition:background .15s,color .15s}.p-currency-toggle__btn+.p-currency-toggle__btn{border-left:1.5px solid var(--pencil-line)}.p-currency-toggle__btn--active{background:var(--ink);color:var(--paper-base)}@media (max-width: 640px){.p-modal{padding:20px 16px}.p-stat-card__value{font-size:1.6rem}}
