:root{--bg:#ebe4d8;--bg-deep:#e0d7c8;--bg-elevated:#f3ede3;--bg-panel:#f7f2ea;--bg-muted:#ddd4c5;--bg-event:#d8cfc0;--ink:#2c2924;--ink-muted:#6a6358;--ink-faint:#948b7c;--line:#c4b9a6;--line-strong:#a89980;--link:#8a9bb0;--join:#3ecf6e;--accent:#e6b422;--accent-soft:#e6b42238;--ok:#2f8f5b;--ok-soft:#d7ebe0;--warn:#b87a1a;--warn-soft:#f3e6cf;--danger:#c44b3c;--danger-soft:#f3d6d1;--meta:#c44b3c;--shadow:0 2px 10px #46371e14;--font-sans:"Hiragino Sans", "Hiragino Kaku Gothic ProN", "Noto Sans JP", "Yu Gothic UI", "Segoe UI", sans-serif;--font-mono:ui-monospace, "Cascadia Mono", "Consolas", monospace;--radius:6px;--header-h:58px;--pill-bg:#f0ebe2;--pill-border:#b7ab97;--event-bg:#cfc6b6;--event-item:#b9ae9b}*{box-sizing:border-box;margin:0;padding:0}html{height:100%}html,body{max-width:100vw;overflow-x:hidden}body{min-height:100%;color:var(--ink);background:var(--bg);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}img{max-width:100%;display:block}.app-shell{background:var(--bg);flex-direction:column;min-height:100vh;display:flex}.app-header{height:var(--header-h);border-bottom:1px solid var(--line);background:var(--bg-panel);z-index:30;align-items:center;gap:1rem;padding:0 1rem;display:flex;position:sticky;top:0}.app-brand{white-space:nowrap;align-items:baseline;gap:.5rem;font-size:1rem;font-weight:700;display:flex}.app-brand span{color:var(--ink-muted);font-size:.75rem;font-weight:400}.app-main{flex:1;width:100%;max-width:none;margin:0;padding:0}.app-main.padded{max-width:1200px;margin:0 auto;padding:1.5rem 1.25rem 2.5rem}.app-main.wide{padding:0}.btn{border-radius:var(--radius);color:#f7f2ea;background:#5c5346;border:1px solid #0000;justify-content:center;align-items:center;gap:.35rem;height:2.1rem;padding:0 .85rem;font-size:.85rem;font-weight:600;display:inline-flex}.btn:hover{opacity:.92}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-secondary{background:var(--bg-panel);color:var(--ink);border-color:var(--line);font-weight:500}.btn-ghost{color:var(--ink-muted);background:0 0;border-color:#0000;height:2rem;padding:0 .45rem;font-weight:500}.btn-danger{color:var(--danger);border-color:color-mix(in srgb, var(--danger) 35%, var(--line));background:0 0;font-weight:500}.field{flex-direction:column;gap:.3rem;display:flex}.field label{color:var(--ink-muted);font-size:.78rem;font-weight:500}.field input,.field select,.field textarea{border:1px solid var(--line);border-radius:var(--radius);background:#fff;outline:none;width:100%;padding:.5rem .65rem}.field input:focus,.field select:focus,.field textarea:focus{border-color:color-mix(in srgb, var(--accent) 55%, var(--line));box-shadow:0 0 0 3px var(--accent-soft)}.field textarea{resize:vertical;min-height:5rem}.badge{background:var(--bg-muted);height:1.3rem;color:var(--ink-muted);border-radius:999px;align-items:center;padding:0 .4rem;font-size:.7rem;font-weight:600;display:inline-flex}.badge-open{background:var(--danger-soft);color:var(--danger)}.badge-done{background:var(--ok-soft);color:var(--ok)}.badge-progress{background:var(--warn-soft);color:var(--warn)}.muted{color:var(--ink-muted)}.faint{color:var(--ink-faint)}.mono{font-family:var(--font-mono)}.page-title{flex-direction:column;gap:.3rem;margin-bottom:1.25rem;display:flex}.page-title h1{font-size:1.45rem;font-weight:600}.page-title p{color:var(--ink-muted);font-size:.92rem}
