:root{--bg:#f5f1eb;--card:#fff;--sub:#fbf8f4;--text:#201b16;--muted:#766c62;--line:#e7dccf;--brand:#7a5a35;--ok:#2f7b52;--danger:#ad4b4b;--shadow:0 10px 26px rgba(43,29,15,.08)}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}body{margin:0;background:linear-gradient(180deg,#faf7f3,#f2ece4);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,"Hiragino Sans","Yu Gothic",sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer}
.app{max-width:980px;margin:0 auto;padding:14px 14px 92px}.hero{background:linear-gradient(135deg,#1f1a16,#5d4733 62%,#8e6d49);color:#fff;border-radius:22px;padding:14px 16px;box-shadow:var(--shadow)}.hero h1{margin:0;font-size:21px}.hero p{margin:6px 0 0;color:rgba(255,255,255,.84);line-height:1.5;font-size:12px}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:12px}.stat{background:rgba(255,255,255,.11);border:1px solid rgba(255,255,255,.14);border-radius:14px;padding:10px}.stat .k{font-size:11px;color:rgba(255,255,255,.72)}.stat .v{font-size:19px;font-weight:800;margin-top:4px}
.menu{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:14px 0 18px}.menu button{border:none;border-radius:20px;padding:16px;text-align:left;color:#fff;box-shadow:var(--shadow);min-height:108px}.menu .big{grid-column:1/-1}.blue{background:linear-gradient(135deg,#2f5e9a,#4d80be)}.pink{background:linear-gradient(135deg,#ad5b79,#d78aa5)}.green{background:linear-gradient(135deg,#47745d,#6e9e7f)}.orange{background:linear-gradient(135deg,#a8642e,#d68d4b)}.indigo{background:linear-gradient(135deg,#51577f,#7a80b1)}.gold{background:linear-gradient(135deg,#7b5d31,#ae8a4f)}
.panel{display:none;background:var(--card);border:1px solid rgba(122,90,53,.08);border-radius:22px;padding:16px;box-shadow:var(--shadow);margin-bottom:14px}.panel.active{display:block}.panel h2{margin:0 0 6px;font-size:21px}.desc{margin:0 0 14px;color:var(--muted);font-size:13px;line-height:1.6}.grid2,.grid3{display:grid;grid-template-columns:1fr;gap:12px}.grid-span-2{grid-column:1/-1}label{display:block;font-size:13px;color:var(--muted);font-weight:700;margin-bottom:6px}input,select,textarea{width:100%;border:1px solid var(--line);background:#fff;color:var(--text);border-radius:14px;padding:14px}textarea{min-height:84px;resize:vertical}.actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}.btn{border:none;border-radius:14px;padding:13px 16px;font-weight:800}.btn.primary{background:var(--brand);color:#fff}.btn.secondary{background:var(--sub);border:1px solid var(--line)}.btn.ok{background:var(--ok);color:#fff}.btn.danger{background:var(--danger);color:#fff}.small{font-size:12px;color:var(--muted)}
.list{display:grid;gap:10px}.item{background:#fff8f0;border:1px solid #eadfce;border-radius:14px;padding:12px}.item.recent{background:#f7f8ff;border-color:#dcdef6}.item.staff{background:#f8fbf8;border-color:#d7eadb}.birthday-item{width:100%;text-align:left;border:none;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease}.birthday-item:hover,.birthday-item:focus-visible{transform:translateY(-1px);box-shadow:var(--shadow);outline:none}.mini{background:#faf6f1;border:1px solid #eadfd1;border-radius:16px;padding:14px}.mini strong{display:block}.chips{display:flex;gap:8px;flex-wrap:wrap}.chip{background:#efe6db;border-radius:999px;padding:8px 11px;font-size:13px;color:#4d3d2c}.tablewrap{overflow:auto;border:1px solid var(--line);border-radius:16px}.tablewrap table{width:100%;min-width:880px;border-collapse:collapse}.tablewrap th,.tablewrap td{padding:11px 10px;border-bottom:1px solid #efe4d8;text-align:left;font-size:14px;vertical-align:top}.tablewrap th{background:#faf6f1;color:#5e5449}.detail-card{background:#fffdf9;border:1px solid #eadfce;border-radius:18px;padding:14px;box-shadow:var(--shadow)}
.search-wrap{position:relative}.suggest{position:absolute;left:0;right:0;top:calc(100% + 6px);background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);z-index:10;max-height:260px;overflow-y:auto}.suggest.hidden{display:none}.suggest button{display:block;width:100%;text-align:left;border:none;background:#fff;padding:12px 14px}.helper{font-size:12px;color:var(--muted);margin-top:8px;line-height:1.6}.search-shelf-card{background:linear-gradient(135deg,#fff7ec,#f7ede0);border:1px solid #e2cfb5;border-radius:18px;padding:14px 16px}.shelf-label{font-size:12px;color:var(--muted);font-weight:800;letter-spacing:.08em}.shelf-value{margin-top:6px;font-size:clamp(28px,5vw,40px);font-weight:900;line-height:1.1;color:var(--brand);letter-spacing:.04em;word-break:break-word}.bottom-nav{position:fixed;left:0;right:0;bottom:0;background:rgba(255,255,255,.93);backdrop-filter:blur(10px);border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(5,1fr);padding:8px}.bottom-nav button{border:none;background:none;padding:8px 4px;border-radius:12px;font-size:11px;color:#675d53}.bottom-nav button.active{background:#efe6db;color:var(--brand);font-weight:800}
.msg{margin-top:12px;padding:12px 14px;border-radius:14px;font-size:13px;line-height:1.6}.ok{background:#e8f5ec;color:#215a3b;border:1px solid #c8e4d2}.err{background:#faeaea;color:#7f2f2f;border:1px solid #ebcaca}.hero .actions{margin-top:10px}.hero .btn{padding:10px 14px;border-radius:12px}.hero #roleStatus{font-size:11px;line-height:1.45}.overlay{position:fixed;inset:0;background:rgba(25,20,16,.55);display:flex;align-items:center;justify-content:center;padding:16px;z-index:99}.overlay .card{width:min(520px,100%);background:#fff;border-radius:24px;padding:20px;box-shadow:var(--shadow)}.hidden{display:none!important}
@media (min-width:700px){.grid2{grid-template-columns:1fr 1fr}.grid3{grid-template-columns:repeat(3,1fr)}.stats{grid-template-columns:repeat(3,1fr)}}
