*{box-sizing:border-box}:root{--paper:#f4eee6;--ink:#302820;--brown:#76513a;--dark:#2d251f;--line:#ded0c0;--cream:#fbf7f0;--serif:Georgia,"Times New Roman",serif}body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,"Noto Sans KR",sans-serif}a{color:inherit}.topbar{display:flex;justify-content:space-between;gap:16px;padding:15px 22px;background:var(--dark);color:#fff}.topbar a{text-decoration:none}.topbar div{display:flex;gap:14px}.shell{display:grid;grid-template-columns:285px 1fr;min-height:calc(100vh - 50px)}aside{padding:25px 18px;background:#352a23;color:#fff}aside h1{font:500 31px var(--serif);margin:10px 0}aside p{opacity:.72;font-size:.85rem}.progress{height:7px;background:#5d4c41;border-radius:99px;overflow:hidden;margin:16px 0 7px}.progress span{display:block;height:100%;background:#d8b98e}nav{display:grid;margin-top:18px}nav a{display:flex;justify-content:space-between;padding:10px 12px;border-radius:9px;text-decoration:none}nav a.active{background:#8a6247}.aside-actions{display:grid;gap:8px;margin-top:18px}.aside-actions a{padding:10px;border:1px solid #69584c;border-radius:9px;text-align:center;text-decoration:none}.main{padding:35px clamp(18px,4vw,55px) 100px;min-width:0}.notice{padding:14px 16px;border-radius:10px;margin-bottom:16px}.success{background:#e3efe8;color:#315d49}.error{background:#f6e1dc;color:#893d31}.hero{display:flex;justify-content:space-between;gap:30px;padding:36px;border-radius:24px;color:#fff;background:linear-gradient(135deg,#463229,#896148)}.hero h2{font:500 clamp(38px,5vw,66px)/1.05 var(--serif);margin:8px 0}.stats{display:grid;grid-template-columns:repeat(2,100px);gap:8px}.stats article{padding:13px;background:#ffffff1c;border-radius:12px;text-align:center}.stats strong,.stats span{display:block}.stats strong{font:30px var(--serif)}.panel{margin-top:22px;padding:26px;border:1px solid var(--line);border-radius:17px;background:#fff}.panel h3{font:500 35px var(--serif);margin:0 0 18px}.head{display:flex;justify-content:space-between;align-items:center;gap:20px}.grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.full{grid-column:1/-1}label{display:grid;gap:7px;font-weight:700;font-size:.84rem}input,select,textarea{width:100%;padding:12px;border:1px solid #d4c4b3;border-radius:9px;background:#fffdf9;font:inherit}textarea{line-height:1.6;resize:vertical}button{border:0;border-radius:999px;padding:12px 17px;background:var(--brown);color:#fff;font-weight:800;cursor:pointer}.small{background:#e9dac8;color:#65462f}.list{display:grid;gap:10px}.change{display:grid;grid-template-columns:145px 1fr 1fr 1fr auto;gap:8px}.event{display:grid;grid-template-columns:100px 1fr 2fr 1fr auto;gap:8px}.remove{background:#f0dfd8;color:#874436;border-radius:8px}.photos{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.photos article{border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--cream)}.photos img{width:100%;height:165px;object-fit:cover}.photos strong,.photos small{display:block;padding:8px 10px}.photos small{padding-top:0}.voice{padding:14px;background:var(--cream);border-radius:11px;margin-top:10px}.voice audio{width:100%;margin:8px 0}.empty{padding:25px;text-align:center;background:var(--cream);border-radius:12px}.save{position:sticky;bottom:14px;display:flex;justify-content:space-between;align-items:center;margin-top:22px;padding:14px 18px;border-radius:14px;background:#2f261f;color:#fff}.modal{position:fixed;inset:0;display:grid;place-items:center;background:#1e1814aa;padding:20px}.modal[hidden]{display:none}.modal-card{position:relative;width:min(620px,100%);padding:27px;background:#fff;border-radius:18px}.modal-card form{display:grid;gap:12px}.close{position:absolute;right:12px;top:10px;background:transparent;color:#333;font-size:25px}@media(max-width:950px){.shell{grid-template-columns:220px 1fr}.change,.event{grid-template-columns:1fr 1fr}.photos{grid-template-columns:repeat(2,1fr)}}@media(max-width:720px){.topbar{flex-direction:column}.shell{display:block}aside nav{grid-template-columns:1fr 1fr}.hero{flex-direction:column}.grid{grid-template-columns:1fr}.full{grid-column:auto}.photos{grid-template-columns:1fr 1fr}.save{flex-direction:column;gap:10px}.head{align-items:flex-start;flex-direction:column}}