:root{color:#202c35;font-synthesis:none;--line:#e6ebee;--green:#06c755;--muted:#7c8791;background:#f5f7f8;font-family:PingFang TC,Noto Sans TC,system-ui,sans-serif;font-size:14px}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a{touch-action:manipulation}button{cursor:pointer;color:#43505a;white-space:nowrap;background:#fff;border:1px solid #dce3e7;border-radius:7px;padding:9px 14px}button:disabled{opacity:.4;cursor:not-allowed}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus,select:focus,textarea:focus{outline-offset:2px;outline:2px solid #06c755}button.primary{background:var(--green);color:#fff;border-color:var(--green)}button.danger{color:#ba4444}input,select,textarea{color:#46535e;background:#fff;border:1px solid #dfe5e9;border-radius:6px;min-width:0;padding:9px 12px}textarea{resize:vertical;min-height:80px}input[type=checkbox]{accent-color:var(--green);width:18px;height:18px}.app{grid-template-rows:72px 1fr;grid-template-columns:96px minmax(0,1fr);min-height:100vh;display:grid}.sidebar{border-right:1px solid var(--line);background:#fff;flex-direction:column;grid-row:1/3;align-self:stretch;align-items:center;min-height:100vh;padding:22px 10px;display:flex}.brand{background:var(--green);color:#fff;border-radius:12px;place-items:center;width:42px;height:42px;margin-bottom:35px;font-size:17px;font-weight:700;display:grid}.nav{color:#7a858e;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:6px;width:76px;min-height:72px;margin-bottom:12px;font-size:11px;display:flex}.nav>span{font-size:25px}.nav.active{color:#07883e;background:#eaf9ef}.side-bottom{color:#9da6ad;margin-top:auto;font-size:11px}.topbar{border-bottom:1px solid var(--line);background:#fff;justify-content:space-between;align-items:center;padding:0 32px;font-size:13px;display:flex}.main{min-width:0;padding:28px 32px 40px}.page-title,.panel-head,.toolbar{justify-content:space-between;align-items:center;gap:12px;display:flex}.page-title{margin-bottom:24px}.panel-head{padding:20px 22px}.toolbar{flex-wrap:wrap;margin:20px 0}h1{letter-spacing:-.7px;margin:0;font-size:26px;font-weight:650}h2{margin:0;font-size:16px;font-weight:600}.count{color:#8a959e;margin-left:8px;font-size:15px;font-weight:400}.actions{align-items:center;gap:10px;display:flex}.wrap{flex-wrap:wrap}.grow-right{margin-left:auto}.muted,.field-label{color:var(--muted);font-size:12px}.muted{margin-top:5px}.field-label{margin-bottom:8px;display:block}.panel{border:1px solid var(--line);background:#fff;border-radius:12px;margin-bottom:22px;overflow:hidden}.padded{padding:22px}.project-grid,.menu-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;display:grid}.project-card{padding:22px 24px 0}.card-top,.person,.project-heading{align-items:center;gap:13px;display:flex}.card-top>div{flex:1}.avatar{color:#1a9660;object-fit:cover;background:#eaf8f0;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;display:inline-flex}.topbar .avatar{width:32px;height:32px}.metrics{grid-template-columns:1fr 1.35fr;gap:28px;margin:23px 0;display:grid}.metric{letter-spacing:-.7px;font-variant-numeric:tabular-nums;font-size:32px;font-weight:600}.metric>span{color:var(--muted);font-size:13px;font-weight:400}.progress{background:#edf1f3;border-radius:6px;height:6px;margin-top:12px;overflow:hidden}.progress>span{background:var(--green);border-radius:6px;height:100%;display:block}.card-status,.card-bottom{justify-content:space-between;align-items:center;display:flex}.card-bottom{border-top:1px solid var(--line);margin-top:20px;padding:14px 0}.card-bottom button{color:#4d685a;border:0}.badge{white-space:nowrap;border-radius:5px;padding:4px 8px;font-size:11px;display:inline-flex}.green{color:#16844a;background:#eaf8ef}.amber{color:#9d7414;background:#fff5d9}.red{color:#c84a48;background:#feeeee}.filter-tabs,.subtabs{gap:20px;display:flex}.filter-tabs button,.subtabs button{color:var(--muted);background:0 0;border:0}.filter-tabs button.active,.subtabs button.active{color:#098c43;background:#eaf9ef}.subtabs{border-bottom:1px solid var(--line);margin-bottom:22px;padding-bottom:14px}.project-heading{margin-bottom:24px}.tabs{color:#7b8790;border-bottom:1px solid #dde5e9;align-items:stretch;gap:29px;height:43px;margin-bottom:24px;font-size:13px;display:flex;overflow-x:auto}.tab{white-space:nowrap;align-items:flex-start;display:flex;position:relative}.tab.active{color:#098c43;font-weight:600}.tab.active:after{content:"";background:var(--green);border-radius:3px;width:100%;height:3px;position:absolute;bottom:0}.overview-grid,.settings-grid{grid-template-columns:1.4fr 1fr;gap:22px;display:grid}dl{grid-template-columns:minmax(120px,.7fr) 1fr;gap:18px;margin:24px 0;display:grid}dt{color:var(--muted);font-size:12px}dd{min-width:0;margin:0;font-size:13px}.break{overflow-wrap:anywhere}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:12px}th{text-align:left;color:#808c95;border-top:1px solid var(--line);border-bottom:1px solid var(--line);white-space:nowrap;background:#fafbfc;height:44px;font-weight:500}td{vertical-align:middle;border-bottom:1px solid #eef1f3;padding:16px 10px;line-height:1.5}th{padding:0 10px}td:first-child,th:first-child{padding-left:22px}td:last-child,th:last-child{padding-right:22px}tr:last-child td{border-bottom:0}td button{padding:6px 8px;font-size:11px}td .avatar{width:34px;height:34px}.empty{text-align:center;color:var(--muted);padding:60px 24px}.error{color:#a13932;overflow-wrap:anywhere;background:#fff0ef;border:1px solid #ffd9d5;border-radius:7px;margin-bottom:14px;padding:12px 16px}.modal{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:100;background:#142d2859;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.form{border:1px solid var(--line);background:#fff;border-radius:12px;width:100%;max-width:540px;max-height:90vh;padding:28px;overflow-y:auto}.form h2{margin-bottom:24px}.field{color:#77838c;flex-direction:column;gap:8px;margin-bottom:18px;font-size:12px;display:flex}.field input,.field select,.field textarea{width:100%;font-size:14px}.form .actions{justify-content:flex-end;margin-top:25px}.login{max-width:420px;margin:8vh auto;padding:20px}.login>.brand{margin:0 auto 24px}.login h1{text-align:center;margin-bottom:30px;font-size:23px}.login .form{box-shadow:0 12px 40px #28453908}.one-time{overflow-wrap:anywhere;background:#f2faf5;border-radius:8px;padding:20px;font-family:monospace;font-size:25px;display:block}.editor-layout{grid-template-columns:minmax(0,1fr) 280px;gap:22px;display:grid}.editor-main,.area-panel{padding:22px}.fields-row{align-items:center;gap:20px;display:flex}.fields-row>.field{flex:1}.check{white-space:nowrap;align-items:center;gap:6px;display:flex}.file-button{cursor:pointer;border:1px solid #dce3e7;border-radius:7px;padding:9px 14px;font-size:13px;position:relative;overflow:hidden}.file-button input{opacity:0;cursor:pointer;width:100%;position:absolute;inset:0}.menu-canvas{touch-action:none;-webkit-user-select:none;user-select:none;background:#f0f5f2;border:1px solid #d5e4d9;position:relative;overflow:hidden}.menu-canvas>img{pointer-events:none;width:100%;height:100%;display:block}.menu-area{cursor:move;color:#08622d;background:#06c75513;border:1px dashed #08a851;flex-direction:column;justify-content:center;align-items:center;gap:6px;display:flex;position:absolute}.menu-area.selected{background:#06c75525;border:2px solid #06c755}.menu-area>b{background:#fff;border-radius:50%;place-items:center;width:26px;height:26px;font-size:11px;display:grid}.menu-area>span{white-space:nowrap;text-overflow:ellipsis;background:#ffffffc0;max-width:90%;padding:3px;font-size:12px;overflow:hidden}.handle{z-index:2;background:#fff;border:2px solid #06c755;width:12px;height:12px;position:absolute}.tl{cursor:nwse-resize;top:-5px;left:-5px}.tr{cursor:nesw-resize;top:-5px;right:-5px}.bl{cursor:nesw-resize;bottom:-5px;left:-5px}.br{cursor:nwse-resize;bottom:-5px;right:-5px}.area-panel h2{margin-bottom:24px}.bounds{grid-template-columns:1fr 1fr;gap:10px;display:grid}.menu-preview{background:#f1f8f3;border:1px solid #dfece3;border-radius:6px;max-height:240px;position:relative;overflow:hidden}.menu-preview span{color:#668e72;background:#cbe6d3;border:2px solid #fff;place-items:center;display:grid;position:absolute}.active{color:#098c43}@media (width<=1100px){.main{padding:24px}.editor-layout{grid-template-columns:1fr}.area-panel{max-width:none}.overview-grid,.settings-grid{grid-template-columns:1fr}.fields-row{flex-wrap:wrap}}@media (width<=720px){.app{grid-template-rows:64px 1fr;grid-template-columns:66px minmax(0,1fr)}.sidebar{padding:18px 4px}.nav{width:58px;font-size:10px}.topbar{padding:0 14px}.topbar>.actions>span{display:none}.main{padding:20px 14px}.project-grid,.menu-grid{grid-template-columns:1fr}.project-heading{flex-wrap:wrap}.tabs{gap:20px}.metrics{gap:14px}.metric{font-size:26px}.actions{gap:6px}.subtabs{gap:8px;overflow:auto}.project-heading .grow-right{margin-left:0}.fields-row{display:block}.editor-main{padding:14px}.toolbar input{width:100%}}.menu-preview>img{object-fit:contain;width:100%;height:100%;display:block}.menu-preview span{color:#08622d;background:#06c75515;border:1px dashed #06c755}
